89 #if (INCLUDE_vTaskDelete == 1) 108 #if (INCLUDE_vTaskDelete == 1) 125 xSemaphoreTake(WorkQueue->
Event, portMAX_DELAY);
130 xSemaphoreTake(WorkQueue->
Lock, portMAX_DELAY);
145 xSemaphoreGive(WorkQueue->
Lock);
166 xSemaphoreTake(WorkQueue->
Lock, portMAX_DELAY);
169 #if (INCLUDE_vTaskDelete == 1) 180 xSemaphoreGive(WorkQueue->
Lock);
182 #if (INCLUDE_vTaskDelete == 1) 193 #if (INCLUDE_vTaskDelete == 1) 202 xSemaphoreTake(WorkQueue->
Lock, portMAX_DELAY);
228 xSemaphoreGive(WorkQueue->
Lock);
233 vSemaphoreDelete(WorkQueue->
Lock);
234 vSemaphoreDelete(WorkQueue->
Event);
257 UBaseType_t Priority)
266 if (WorkQueue == NULL)
271 WorkQueue->
Event = xSemaphoreCreateBinary();
273 if (WorkQueue->
Event == NULL) {
278 WorkQueue->
Lock = xSemaphoreCreateMutex();
280 if (WorkQueue->
Lock == NULL) {
281 vSemaphoreDelete(WorkQueue->
Event);
286 #if (INCLUDE_vTaskDelete == 1) 300 vSemaphoreDelete(WorkQueue->
Lock);
301 vSemaphoreDelete(WorkQueue->
Event);
310 #if (INCLUDE_vTaskDelete == 1) 323 xSemaphoreTake(WorkQueue->
Lock, portMAX_DELAY);
333 xSemaphoreGive(WorkQueue->
Event);
338 xSemaphoreGive(WorkQueue->
Lock);
354 if (WorkItem == NULL) {
364 xSemaphoreTake(WorkQueue->
Lock, portMAX_DELAY);
374 xSemaphoreGive(WorkQueue->
Event);
379 xSemaphoreGive(WorkQueue->
Lock);
int QueueWorkItem(WorkQueue_t wq, WorkItem_t Function, void *UserData)
void Enqueue(Queue_t *Queue, DlNode_t *Node)
void DestroyWorkQueue(WorkQueue_t wq)
DlNode_t * Dequeue(Queue_t *Queue)
#define IsQueueEmpty(_queue)
static void WorkerThread(void *parameters)
TaskHandle_t WorkerThread
struct pvtWorkItem_t_ pvtWorkItem_t
WorkQueue_t CreateWorkQueueEx(const char *const Name, uint16_t StackSize, UBaseType_t Priority)
struct pvtWorkQueue_t_ pvtWorkQueue_t
void(* WorkItem_t)(void *UserData)
void InitQueue(Queue_t *Queue)
#define CONTAINING_RECORD(_address, _type, _field)