function lfds711_queue_bmm_dequeue
Jump to navigation
Jump to search
Source Files
└───liblfds711 ├───inc │ └───liblfds711 │ lfds711_queue_bmm.h └───src └───lfds711_queue lfds711_queue_bmm_dequeue.c
Opaque Structures
struct lfds711_queue_bmm_state;
Prototype
int lfds711_queue_bmm_dequeue( struct lfds711_queue_bmm_state *qbmms, void **key, void **value );
Parameters
struct lfds711_queue_bmm_state *qbmms
- A pointer to an initialized struct lfds711_queue_bmm_state.
void **key
- A pointer to a void pointer, which is set to the key of the dequeued element. This argument can be NULL.
void **value
- A pointer to a void pointer, which is set to the value of the dequeued element. This argument can be NULL.
Return Value
Returns 1 on a successful dequeue. Returns 0 if dequeing failed. Dequeuing only fails if the queue is empty.
Notes
Remember that this is a relaxed data structure, so enqueues and dequeues performed on any given logical core may well not be seen immediately by other logical cores; so as such for example a queue which according to programme logic must have items enqueued due to queue operations may for a short period after those enqueue operations still be seen as empty on other logical cores.