#include "zos_thread.hpp" #include "zoslogger.hpp" using namespace iflytop; using namespace std; static void zosthread_default_task(void const *argument) { ZOSThread *thread = (ZOSThread *)argument; thread->__callfunc(); } void ZOSThread::init(const char *threadname, int stack_size, osPriority priority) { _stack_size = stack_size; _priority = priority; _threadname = threadname; } void ZOSThread::run(function func) { _func = func; osThreadDef(zosthread_default_task, zosthread_default_task, _priority, 0, _stack_size); _defaultTaskHandle = osThreadCreate(osThread(zosthread_default_task), this); ZASSERT(_defaultTaskHandle != NULL); } void ZOSThread::__callfunc() { _func(); }