Thrill
0.1
|
This is a queue, similar to std::queue and tbb::concurrent_queue, except that it uses mutexes for synchronization.
StyleGuide is violated, because signatures are expected to match those of std::queue.
Definition at line 30 of file concurrent_queue.hpp.
#include <concurrent_queue.hpp>
Public Types | |
using | const_reference = const T & |
using | difference_type = std::ptrdiff_t |
using | reference = T & |
using | size_type = std::size_t |
using | value_type = T |
Public Member Functions | |
ConcurrentQueue (const Allocator &alloc=Allocator()) | |
Constructor. More... | |
void | clear () |
Clears the queue. More... | |
template<typename... Arguments> | |
void | emplace (Arguments &&... args) |
bool | empty () const |
Returns: true if queue has no items; false otherwise. More... | |
void | push (const T &source) |
Pushes a copy of source onto back of the queue. More... | |
void | push (T &&elem) |
bool | try_pop (T &destination) |
Private Attributes | |
std::mutex | mutex_ |
the mutex to lock before accessing the queue More... | |
std::deque< T, Allocator > | queue_ |
the actual data queue More... | |
using const_reference = const T& |
Definition at line 35 of file concurrent_queue.hpp.
using difference_type = std::ptrdiff_t |
Definition at line 37 of file concurrent_queue.hpp.
Definition at line 34 of file concurrent_queue.hpp.
using size_type = std::size_t |
Definition at line 36 of file concurrent_queue.hpp.
using value_type = T |
Definition at line 33 of file concurrent_queue.hpp.
|
inlineexplicit |
Constructor.
Definition at line 48 of file concurrent_queue.hpp.
|
inline |
Clears the queue.
Definition at line 91 of file concurrent_queue.hpp.
|
inline |
Pushes a new element into the queue. The element is constructed with given arguments.
Definition at line 67 of file concurrent_queue.hpp.
|
inline |
Returns: true if queue has no items; false otherwise.
Definition at line 73 of file concurrent_queue.hpp.
|
inline |
Pushes a copy of source onto back of the queue.
Definition at line 52 of file concurrent_queue.hpp.
|
inline |
Pushes given element into the queue by utilizing element's move constructor
Definition at line 59 of file concurrent_queue.hpp.
|
inline |
If value is available, pops it from the queue, assigns it to destination, and destroys the original value. Otherwise does nothing.
Definition at line 80 of file concurrent_queue.hpp.
|
mutableprivate |
the mutex to lock before accessing the queue
Definition at line 44 of file concurrent_queue.hpp.
|
private |
the actual data queue
Definition at line 41 of file concurrent_queue.hpp.