[Return to Bookshelf] [Contents] [Previous Section] [Next Section] [Index] [Help]


cma_lib_queue_dequeue

Removes the first element from an atomic queue.

Syntax

cma_lib_queue_dequeue (queue, element)
 


Argument Data Type Access

queue opaque cma_lib_t_queue read element opaque cma_t_address write


C Binding

void
cma_lib_queue_dequeue (
cma_lib_t_queue *queue,
cma_lib_t_address *element);

Arguments

queue
Handle of the queue from which the element is removed.
element
Variable that receives the address of the removed queue element.

Description

This routine removes the first element from an atomic queue. If the queue is empty, the calling thread is blocked until an element is inserted into the queue. When the element is enqueued the calling thread resumes, the new element is removed, and this routine returns.

Call cma_lib_queue_try_dequeue to remove an element from a queue and return a status code (instead of blocking) if the queue is empty.

Exceptions

cma_e_existence
cma_e_use_error



[Return to Bookshelf] [Contents] [Previous Section] [Next Section] [Index] [Help]