Lines Matching refs:queue
37 void CARDi_InitTaskQueue(CARDTaskQueue *queue) in CARDi_InitTaskQueue() argument
39 queue->list = NULL; in CARDi_InitTaskQueue()
40 queue->quit = FALSE; in CARDi_InitTaskQueue()
41 OS_InitThreadQueue(queue->workers); in CARDi_InitTaskQueue()
53 SDK_INLINE void CARDi_QuitTaskQueue(CARDTaskQueue *queue) in CARDi_QuitTaskQueue() argument
56 queue->quit = TRUE; in CARDi_QuitTaskQueue()
57 OS_WakeupThread(queue->workers); in CARDi_QuitTaskQueue()
97 void CARDi_ProcessTask(CARDTaskQueue *queue, CARDTask *task, BOOL blocking, BOOL changePriority) in CARDi_ProcessTask() argument
103 CARDTask **pp = (CARDTask **)&queue->list; in CARDi_ProcessTask()
109 if (pp == &queue->list) in CARDi_ProcessTask()
111 OS_WakeupThread(queue->workers); in CARDi_ProcessTask()
153 CARDTask* CARDi_ReceiveTask(CARDTaskQueue *queue, BOOL blocking) in CARDi_ReceiveTask() argument
157 while (!queue->quit) in CARDi_ReceiveTask()
159 retval = queue->list; in CARDi_ReceiveTask()
164 OS_SleepThread(queue->workers); in CARDi_ReceiveTask()
168 queue->list = retval->next; in CARDi_ReceiveTask()
185 CARDTaskQueue *queue = (CARDTaskQueue*)arg; in CARDi_TaskWorkerProcedure() local
191 CARDTask *task = CARDi_ReceiveTask(queue, TRUE); in CARDi_TaskWorkerProcedure()
198 CARDi_ProcessTask(queue, task, TRUE, TRUE); in CARDi_TaskWorkerProcedure()