|
xenium
|
An unbounded lock-free multi-producer/multi-consumer queue. More...
#include <nikolaev_queue.hpp>
Public Member Functions | |
| void | push (value_type value) |
| Pushes the given value. More... | |
| bool | try_pop (value_type &result) |
| Tries to pop an element from the queue. More... | |
An unbounded lock-free multi-producer/multi-consumer queue.
This implementation is based on the unbounded MPMC queue proposed by Nikolaev [Nik19].
The nikoleav_queue provides lock-free progress guarantee under the condition that the number of threads concurrently operating on the queue is less than the capacity of a node (see entries_per_node policy).
Supported policies:
xenium::policy::reclaimerxenium::policy::entries_per_nodexenium::policy::pop_retries| T | |
| Policies | list of policies to customize the behaviour |
| void xenium::nikolaev_queue< T, Policies >::push | ( | value_type | value | ) |
Pushes the given value.
Progress guarantees: lock-free
| value |
| bool xenium::nikolaev_queue< T, Policies >::try_pop | ( | value_type & | result | ) |
Tries to pop an element from the queue.
Progress guarantees: lock-free
| result |
true if the operation was successful, otherwise false
1.8.17