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


cma_lib_queue_try_dequeue

Removes the first element from an atomic queue.

Syntax

status = cma_lib_queue_try_dequeue (queue, element)
 


Argument Data Type Access

status Boolean cma_t_boolean write queue opaque cma_lib_t_queue read element opaque cma_t_address write


C Binding

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

Arguments

status
Boolean value that specifies whether the element was dequeued.
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 does not wait for an element to be enqueued. Instead, the routine returns with the status cma_c_false. If the queue is not empty, the first element value is returned to element, and the routine returns with the status cma_c_true.

Call cma_lib_queue_dequeue if you want to remove an element from a queue but cause the calling thread to block if the queue is empty.

Exceptions

cma_e_existence
cma_e_use_error



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