Lines Matching refs:queue
26 LockFreeQueue *queue;
31 LockFreeBlockQueue *queue = (LockFreeBlockQueue *)SAMGR_Malloc(sizeof(LockFreeBlockQueue));
32 if (queue == NULL) {
35 queue->queue = LFQUE_Create(size, count);
36 if (queue->queue == NULL) {
37 SAMGR_Free(queue);
40 pthread_mutex_init(&queue->wMutex, NULL);
41 pthread_mutex_init(&queue->rMutex, NULL);
42 pthread_cond_init(&queue->cond, NULL);
43 return (MQueueId)queue;
51 LockFreeBlockQueue *queue = (LockFreeBlockQueue *)queueId;
52 pthread_mutex_lock(&queue->wMutex);
53 int ret = LFQUE_Push(queue->queue, element, pri);
54 pthread_mutex_unlock(&queue->wMutex);
55 pthread_mutex_lock(&queue->rMutex);
56 pthread_cond_broadcast(&queue->cond);
57 pthread_mutex_unlock(&queue->rMutex);
67 LockFreeBlockQueue *queue = (LockFreeBlockQueue *)queueId;
68 pthread_mutex_lock(&queue->rMutex);
69 while (LFQUE_Pop(queue->queue, element, pri) != EC_SUCCESS) {
70 pthread_cond_wait(&queue->cond, &queue->rMutex);
72 pthread_mutex_unlock(&queue->rMutex);
82 LockFreeBlockQueue *queue = (LockFreeBlockQueue *)queueId;
83 pthread_mutex_destroy(&queue->wMutex);
84 pthread_mutex_destroy(&queue->rMutex);
85 pthread_cond_destroy(&queue->cond);
86 SAMGR_Free(queue->queue);
87 SAMGR_Free(queue);