__gnu_parallel::_RestrictedBoundedConcurrentQueue.3cxx
Contents
Constructor & Destructor Documentation
template<typename_Tp>__gnu_parallel::_RestrictedBoundedConcurrentQueue<_Tp>::_RestrictedBoundedConcurrentQueue(_SequenceIndex__max_size)[inline]
Constructor. Not to be called concurrent, of course.
Parameters__max_size Maximal number of elements to be contained.
References __gnu_parallel::__encode2().
template<typename_Tp>__gnu_parallel::_RestrictedBoundedConcurrentQueue<_Tp>::~_RestrictedBoundedConcurrentQueue()[inline]
Destructor. Not to be called concurrent, of course.
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_Tp Contained element type.
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().
References __gnu_parallel::__compare_and_swap(), __gnu_parallel::__decode2(), and
__gnu_parallel::__encode2().
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().
References __gnu_parallel::__compare_and_swap(), __gnu_parallel::__decode2(), and
__gnu_parallel::__encode2().
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().
References __gnu_parallel::__decode2(), __gnu_parallel::__encode2(), and
__gnu_parallel::__fetch_and_add().
Name
__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.
Synopsis
#include <queue.h>
PublicMemberFunctions_RestrictedBoundedConcurrentQueue (_SequenceIndex __max_size)
Constructor. Not to be called concurrent, of course.
~_RestrictedBoundedConcurrentQueue ()
Destructor. Not to be called concurrent, of course.
bool pop_back (_Tp &__t)
Pops one element from the queue at the front end. Must not be called concurrently with pop_front().
bool pop_front (_Tp &__t)
Pops one element from the queue at the front end. Must not be called concurrently with pop_front().
void push_front (const _Tp &__t)
Pushes one element into the queue at the front end. Must not be called concurrently with pop_front().
