46WorkItem::WorkItem(
bool freeAfterComplete)
47 : FreeItemAfterCompleted(freeAfterComplete)
66 UBaseType_t maxWorkItems)
84 UBaseType_t maxWorkItems)
100#if (INCLUDE_vTaskDelete == 1)
145 UBaseType_t Priority,
147 :
Thread(Name, StackDepth, Priority), ParentWorkQueue(Parent)
153 UBaseType_t Priority,
155 :
Thread(StackDepth, Priority), ParentWorkQueue(Parent)
174 ParentWorkQueue->WorkItemQueue->Dequeue(&work);
204 ParentWorkQueue->ThreadComplete->Give();
virtual bool Enqueue(void *item)
bool Take(TickType_t Timeout=portMAX_DELAY)
const bool FreeItemAfterCompleted
CWorkerThread(const char *const Name, uint16_t StackDepth, UBaseType_t Priority, WorkQueue *Parent)
BinarySemaphore * ThreadComplete
WorkQueue(const char *const Name, uint16_t StackDepth=DEFAULT_WORK_QUEUE_STACK_SIZE, UBaseType_t Priority=DEFAULT_WORK_QUEUE_PRIORITY, UBaseType_t MaxWorkItems=DEFAULT_MAX_WORK_ITEMS)
bool QueueWork(WorkItem *work)
CWorkerThread * WorkerThread