function lfds711_queue_bmm_dequeue

From liblfds.org
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.

See Also