template <typename T>

class MpscQueue

Defined at line 15 of file ../../src/lib/containers/cpp/mpsc_queue.h

A lock free queue for multiple producers and a single consumer.

Public Methods

void MpscQueue<T> ()

Defined at line 17 of file ../../src/lib/containers/cpp/mpsc_queue.h

void ~MpscQueue<T> ()

Defined at line 19 of file ../../src/lib/containers/cpp/mpsc_queue.h

void MpscQueue<T> (MpscQueue<T> && )

Disallow copy, assign, and move.

Defined at line 22 of file ../../src/lib/containers/cpp/mpsc_queue.h

void MpscQueue<T> (const MpscQueue<T> & )

Defined at line 23 of file ../../src/lib/containers/cpp/mpsc_queue.h

MpscQueue<T> & operator= (MpscQueue<T> && )

Defined at line 24 of file ../../src/lib/containers/cpp/mpsc_queue.h

MpscQueue<T> & operator= (const MpscQueue<T> & )

Defined at line 25 of file ../../src/lib/containers/cpp/mpsc_queue.h

template <typename U>
void Push (U && element)

Pushes a new element onto the queue.

In any given thread, elements pushed first will be dequeued first. When

pushers on different threads contend it is not gauranteed that the thread

to call first will end up in the queue first.

Defined at line 33 of file ../../src/lib/containers/cpp/mpsc_queue.h

std::optional<T> Pop ()

Pops an element from the queue.

This should only be called from the consumer thread.

Defined at line 45 of file ../../src/lib/containers/cpp/mpsc_queue.h

void Clear ()

Drops all elements from the queue.

This should only be called from the consumer thread.

Defined at line 64 of file ../../src/lib/containers/cpp/mpsc_queue.h