└───liblfds711 ├───inc │ └───liblfds711 │ lfds711_queue_bmm.h └───src └───lfds711_queue lfds711_queue_bmm_enqueue.c
int lfds711_queue_bmm_enqueue( 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 void pointer, which the key in the queue element is set to. This argument can be NULL, and the actual value of the key is not used in any way by the queue.
- A void pointer, which the value in the queue element is set to. This argument can be NULL, and the actual value of the value is not used in any way by the queue.
Returns 1 on a successful enqueue. Returns 0 if enqueing failed. Enqueuing fails if the queue is full.
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; as such for example a queue which according to programme logic must have free space due to dequeue operations may for a short period after those dequeue operations still be seen as full on other logical cores.