5 #ifndef EMX_EuvWork_HPP
6 #define EMX_EuvWork_HPP
21 : m_loop(nullptr), m_work(nullptr), m_arg(nullptr), m_runCb(nullptr), m_afterCb(nullptr),
70 const std::string &threadName =
"");
91 static void OnDestroy(uv_work_t *req,
int status);
101 std::string m_threadName;
102 bool m_isShowThreadName;
实现多路复用循环的主体,所有基于EuvLoop的事件都应绑定到一个EuvLoop上
Definition: EuvLoop.hpp:18
提供在EuvLoop内调用线程池执行阻塞耗时任务的机制
Definition: EuvWork.hpp:18
EuvWork()
Definition: EuvWork.hpp:20
ErrCodeE Run(void *arg=nullptr, RunWorkCallBack runCb=nullptr, AfterWorkCallBack afterCb=nullptr, const std::string &threadName="")
运行任务
ErrCodeE Create(EuvLoop *loop, void *arg=nullptr, RunWorkCallBack runCb=nullptr, AfterWorkCallBack afterCb=nullptr, const std::string &threadName="")
创建work,可指定后续运行参数
static void SetWorkNum(int num)
配置当前进程线程池大小
void Destroy()
销毁work,如果任务未执行则立刻返回,如果任务在执行中则以阻塞方式等待任务执行完毕
bool IsWorking()
获取work是否正在运行
Definition: EuvWork.hpp:76
std::function< void(Emx::ErrCodeE e, void *arg)> AfterWorkCallBack
任务执行完毕的回调函数,此函数运行在loop中,在此回调中可以再次Run新的任务
Definition: EuvWork.hpp:36
static int GetWorkNum()
获取当前进程线程池大小
std::function< void(void *arg)> RunWorkCallBack
注册执行耗时阻塞任务的回调函数,此函数运行在loop外的线程池中
Definition: EuvWork.hpp:29
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
Definition: EmxGpio.hpp:10