MPSC queue with FIFO semantics.
More...
#include <gcs_mpsc_queue.h>
template<typename
T, typename
Deleter = std::default_delete<T>>
class Gcs_mpsc_queue< T, Deleter >
MPSC queue with FIFO semantics.
Implemented as a linked list of nodes. Inspired by Dmitry Vyukov's "non-intrusive MPSC node-based queue" algorithm, available on 2017-07-10 at http://www.1024cores.net/home/lock-free-algorithms/queues/non-intrusive-mpsc-node-based-queue
◆ Gcs_mpsc_queue() [1/4]
template<typename
T , typename
Deleter = std::default_delete<T>>
◆ Gcs_mpsc_queue() [2/4]
template<typename
T , typename
Deleter = std::default_delete<T>>
◆ ~Gcs_mpsc_queue()
template<typename
T , typename
Deleter = std::default_delete<T>>
Destroy the queued nodes.
◆ Gcs_mpsc_queue() [3/4]
template<typename
T , typename
Deleter = std::default_delete<T>>
◆ Gcs_mpsc_queue() [4/4]
template<typename
T , typename
Deleter = std::default_delete<T>>
◆ operator=() [1/2]
template<typename
T , typename
Deleter = std::default_delete<T>>
◆ operator=() [2/2]
template<typename
T , typename
Deleter = std::default_delete<T>>
◆ pop()
template<typename
T , typename
Deleter = std::default_delete<T>>
Attempt to retrieve the first element from the queue.
Note that this is a non-blocking method.
- Return values
-
T* | if the queue is not empty |
nullptr | if the queue is empty |
◆ push()
template<typename
T , typename
Deleter = std::default_delete<T>>
Insert payload
at the end of the queue.
- Parameters
-
payload | the element to insert |
- Returns
- true if the insertion was successful, false otherwise
◆ m_head
template<typename
T , typename
Deleter = std::default_delete<T>>
◆ m_payload_deleter
template<typename
T , typename
Deleter = std::default_delete<T>>
◆ m_tail
template<typename
T , typename
Deleter = std::default_delete<T>>
The documentation for this class was generated from the following file: