int queue_dequeue( struct queue_state *qs, void **user_data );
struct queue_state *qs
- A queue state as allocated by queue_new.
- The address of a pointer into which the user data will be placed. On an unsuccessful dequeue (which occurs if and only if the queue is empty), *user_data is not modified, as NULL is a valid user data value.
Returns 1 if an element was dequeued, returns 0 if an element was no dequeued. The queue being empty is the only situation in which dequeuing does not occur. Note that on an unsuccessful dequeue, *user_data is untouched; it is not set to NULL, since NULL is a valid user data value. Only the return value indicates whether or not the dequeue was successful.