12typedef struct TaskQueue TaskQueue;
13typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
14typedef struct TQThreadPoolMonitor TQThreadPoolMonitor;
15typedef struct TQThreadPoolMonitor_WeakRef TQThreadPoolMonitor_WeakRef;
18#define _sti_TQThreadPoolMonitor _sti_object
19#define SType_TQThreadPoolMonitor TQThreadPoolMonitor*
20#define STStorageType_TQThreadPoolMonitor TQThreadPoolMonitor*
21#define STypeArg_TQThreadPoolMonitor(type, val) stgeneric(object, (ObjInst*)objInstCheckClass(TQThreadPoolMonitor, val))
22#define STypeArgPtr_TQThreadPoolMonitor(type, val) (stgeneric*)objInstCheckClassPtr(TQThreadPoolMonitor, val)
23#define STypeCheckedArg_TQThreadPoolMonitor(type, val) stType(type), stArg(type, val)
24#define STypeCheckedPtrArg_TQThreadPoolMonitor(type, val) stType(type), stArgPtr(type, val)
26typedef struct TQThreadPoolMonitor_ClassIf {
31 bool (*start)(_In_
void* self, _In_ TaskQueue* tq);
32 int64 (*tick)(_In_
void* self);
33 bool (*stop)(_In_
void* self);
34} TQThreadPoolMonitor_ClassIf;
35extern TQThreadPoolMonitor_ClassIf TQThreadPoolMonitor_ClassIf_tmpl;
37typedef struct TQThreadPoolMonitor {
39 TQThreadPoolMonitor_ClassIf* _;
40 void* _is_TQThreadPoolMonitor;
55#define TQThreadPoolMonitor(inst) objInstCheckClass(TQThreadPoolMonitor, inst)
56#define TQThreadPoolMonitorNone ((TQThreadPoolMonitor*)NULL)
58typedef struct TQThreadPoolMonitor_WeakRef {
61 void* _is_TQThreadPoolMonitor_WeakRef;
62 void* _is_TQMonitor_WeakRef;
63 void* _is_ObjInst_WeakRef;
67} TQThreadPoolMonitor_WeakRef;
68#define TQThreadPoolMonitor_WeakRef(inst) objWeakRefCheckClass(TQThreadPoolMonitor, inst)
72#define tqthreadpoolmonitorCreate(config) TQThreadPoolMonitor_create(config)
75#define tqthreadpoolmonitorStart(self, tq) (self)->_->start(TQThreadPoolMonitor(self), TaskQueue(tq))
77#define tqthreadpoolmonitorTick(self) (self)->_->tick(TQThreadPoolMonitor(self))
79#define tqthreadpoolmonitorStop(self) (self)->_->stop(TQThreadPoolMonitor(self))
#define saDeclarePtr(name)
#define _objfactory_guaranteed
CX Struct System - Introspectable, serializable POD structures in C.
Mutex synchronization primitive.
CX Object System - Object-oriented programming in C.
Queue monitoring configuration for detecting stalled tasks.