6#include "tqmthreadpool.h"
9typedef struct TaskQueue TaskQueue;
10typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
11typedef struct TaskQueue TaskQueue;
12typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
13typedef struct TQThreadPoolRunner TQThreadPoolRunner;
14typedef struct TQThreadPoolRunner_WeakRef TQThreadPoolRunner_WeakRef;
15typedef struct TQInWorkerManager TQInWorkerManager;
16typedef struct TQInWorkerManager_WeakRef TQInWorkerManager_WeakRef;
20typedef struct TQInWorkerManager_ClassIf {
25 bool (*start)(_In_
void* self, _In_ TaskQueue* tq);
26 bool (*stop)(_In_
void* self);
27 void (*notify)(_In_
void* self,
bool wakeup);
29 void (*pretask)(_In_
void* self);
30 int64 (*tick)(_In_
void* self);
31 void (*updatePoolSize)(_In_
void* self);
32} TQInWorkerManager_ClassIf;
33extern TQInWorkerManager_ClassIf TQInWorkerManager_ClassIf_tmpl;
35typedef struct TQInWorkerManager {
37 TQInWorkerManager_ClassIf* _;
38 void* _is_TQInWorkerManager;
39 void* _is_TQThreadPoolManager;
49 TQThreadPoolRunner* runner;
57#define TQInWorkerManager(inst) ((TQInWorkerManager*)(unused_noeval((inst) && &((inst)->_is_TQInWorkerManager)), (inst)))
58#define TQInWorkerManagerNone ((TQInWorkerManager*)NULL)
60typedef struct TQInWorkerManager_WeakRef {
63 void* _is_TQInWorkerManager_WeakRef;
64 void* _is_TQThreadPoolManager_WeakRef;
65 void* _is_TQManager_WeakRef;
66 void* _is_ObjInst_WeakRef;
70} TQInWorkerManager_WeakRef;
71#define TQInWorkerManager_WeakRef(inst) ((TQInWorkerManager_WeakRef*)(unused_noeval((inst) && &((inst)->_is_TQInWorkerManager_WeakRef)), (inst)))
75#define tqinworkermanagerCreate() TQInWorkerManager_create()
78#define tqinworkermanagerStart(self, tq) (self)->_->start(TQInWorkerManager(self), TaskQueue(tq))
80#define tqinworkermanagerStop(self) (self)->_->stop(TQInWorkerManager(self))
82#define tqinworkermanagerNotify(self, wakeup) (self)->_->notify(TQInWorkerManager(self), wakeup)
86#define tqinworkermanagerPretask(self) (self)->_->pretask(TQInWorkerManager(self))
88#define tqinworkermanagerTick(self) (self)->_->tick(TQInWorkerManager(self))
90#define tqinworkermanagerUpdatePoolSize(self) (self)->_->updatePoolSize(TQInWorkerManager(self))
#define saDeclarePtr(name)
#define _objfactory_guaranteed
Mutex synchronization primitive.
CX Object System - Object-oriented programming in C.