function lfds711_queue_bmm_dequeue
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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.