libstdc++
__gnu_parallel::RestrictedBoundedConcurrentQueue< T > Class Template Reference
Inheritance diagram for __gnu_parallel::RestrictedBoundedConcurrentQueue< T >:
Inheritance graph

Public Member Functions

bool pop_back (T &t)
 
bool pop_front (T &t)
 
void push_front (const T &t)
 
 RestrictedBoundedConcurrentQueue (sequence_index_t max_size)
 
 ~RestrictedBoundedConcurrentQueue ()
 

Detailed Description

template<typename T>
class __gnu_parallel::RestrictedBoundedConcurrentQueue< T >

Double-ended queue of bounded size, allowing lock-free atomic access. push_front() and pop_front() must not be called concurrently to each other, while pop_back() can be called concurrently at all times. empty(), size(), and top() are intentionally not provided. Calling them would not make sense in a concurrent setting.

Parameters
TContained element type.

Definition at line 52 of file queue.h.

Constructor & Destructor Documentation

Constructor. Not to be called concurrent, of course.

Parameters
max_sizeMaximal number of elements to be contained.

Definition at line 68 of file queue.h.

Destructor. Not to be called concurrent, of course.

Definition at line 77 of file queue.h.

Member Function Documentation

template<typename T>
bool __gnu_parallel::RestrictedBoundedConcurrentQueue< T >::pop_back ( T &  t)
inline

Pops one element from the queue at the front end. Must not be called concurrently with pop_front().

Definition at line 124 of file queue.h.

template<typename T>
bool __gnu_parallel::RestrictedBoundedConcurrentQueue< T >::pop_front ( T &  t)
inline

Pops one element from the queue at the front end. Must not be called concurrently with pop_front().

Definition at line 100 of file queue.h.

template<typename T>
void __gnu_parallel::RestrictedBoundedConcurrentQueue< T >::push_front ( const T &  t)
inline

Pushes one element into the queue at the front end. Must not be called concurrently with pop_front().

Definition at line 83 of file queue.h.


The documentation for this class was generated from the following file: