└───liblfds711 ├───inc │ └───liblfds711 │ lfds711_queue_bmm.h └───src └───lfds711_queue lfds711_queue_bmm_dequeue.c
int lfds711_queue_bmm_dequeue( struct lfds711_queue_bmm_state *qbmms, void **key, void **value );
struct lfds711_queue_bmm_state *qbmms
- A pointer to an initialized struct lfds711_queue_bmm_state.
- A pointer to a void pointer, which is set to the key of the dequeued element. This argument can be NULL.
- A pointer to a void pointer, which is set to the value of the dequeued element. This argument can be NULL.
Returns 1 on a successful dequeue. Returns 0 if dequeing failed. Dequeuing only fails if the queue is empty.
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.