![[Return to Bookshelf]](BOOKSHELF.GIF) 
![[Contents]](TOC.GIF) 
![[Previous Section]](PREV.GIF) 
![[Next Section]](NEXT.GIF) 
![[Index]](INDEX.GIF) 
![[Help]](HELP.GIF) 
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]](BOOKSHELF.GIF) 
![[Contents]](TOC.GIF) 
![[Previous Section]](PREV.GIF) 
![[Next Section]](NEXT.GIF) 
![[Index]](INDEX.GIF) 
![[Help]](HELP.GIF)