libstdc++
__gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp > Class Template Reference
Inheritance diagram for __gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >:

List of all members.

Public Member Functions


Detailed Description

template<typename _Tp>
class __gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >

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:
_TpContained 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 _Tp>
bool __gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::pop_back ( _Tp &  __t) [inline]

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

Definition at line 127 of file queue.h.

template<typename _Tp>
bool __gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::pop_front ( _Tp &  __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.

Referenced by __gnu_parallel::__qsb_local_sort_with_helping().

template<typename _Tp>
void __gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::push_front ( const _Tp &  __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.

Referenced by __gnu_parallel::__qsb_local_sort_with_helping().


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