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