39typedef struct ComplexTask_WeakRef ComplexTask_WeakRef;
40typedef struct TaskQueue TaskQueue;
41typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
42typedef struct TQWorker TQWorker;
43typedef struct TQWorker_WeakRef TQWorker_WeakRef;
45typedef struct ComplexTask_WeakRef ComplexTask_WeakRef;
47typedef struct TRGate_WeakRef TRGate_WeakRef;
48typedef struct ComplexTaskQueue ComplexTaskQueue;
49typedef struct ComplexTaskQueue_WeakRef ComplexTaskQueue_WeakRef;
51typedef struct TRLifo TRLifo;
52typedef struct TRLifo_WeakRef TRLifo_WeakRef;
56typedef struct TRLifo_ClassIf {
61 bool (*registerTask)(_In_
void* self,
ComplexTask* task);
62 bool (*canAcquire)(_In_
void* self,
ComplexTask* task);
63 bool (*tryAcquire)(_In_
void* self,
ComplexTask* task);
64 void (*release)(_In_
void* self,
ComplexTask* task);
66extern TRLifo_ClassIf TRLifo_ClassIf_tmpl;
71typedef struct TRLifo {
75 void* _is_TaskResource;
87#define TRLifo(inst) ((TRLifo*)(unused_noeval((inst) && &((inst)->_is_TRLifo)), (inst)))
88#define TRLifoNone ((TRLifo*)NULL)
90typedef struct TRLifo_WeakRef {
93 void* _is_TRLifo_WeakRef;
94 void* _is_TaskResource_WeakRef;
95 void* _is_ObjInst_WeakRef;
100#define TRLifo_WeakRef(inst) ((TRLifo_WeakRef*)(unused_noeval((inst) && &((inst)->_is_TRLifo_WeakRef)), (inst)))
107#define trlifoCreate() TRLifo_create()
110#define trlifoRegisterTask(self, task) (self)->_->registerTask(TRLifo(self), ComplexTask(task))
112#define trlifoCanAcquire(self, task) (self)->_->canAcquire(TRLifo(self), ComplexTask(task))
114#define trlifoTryAcquire(self, task) (self)->_->tryAcquire(TRLifo(self), ComplexTask(task))
116#define trlifoRelease(self, task) (self)->_->release(TRLifo(self), ComplexTask(task))
Complex task with dependencies, scheduling, and resource management.
#define saDeclarePtr(name)
#define _objfactory_guaranteed
Mutex synchronization primitive.
CX Object System - Object-oriented programming in C.
Complex task with dependencies, scheduling, and resource management.
One-time event gate for task synchronization.
Abstract base class for shared resources.