__gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp > Class Template Reference

`#include <queue.h>`

## Public Member Functions

| _RestrictedBoundedConcurrentQueue (_SequenceIndex __max_size)
| ~_RestrictedBoundedConcurrentQueue ()
bool | pop_back (_Tp &__t)
bool | pop_front (_Tp &__t)
void | push_front (const _Tp &__t)

## 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.

Definition at line 52 of file queue.h.

## Constructor & Destructor Documentation

## _RestrictedBoundedConcurrentQueue()

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.

Definition at line 68 of file queue.h.

References __gnu_parallel::__encode2().

## ~_RestrictedBoundedConcurrentQueue()

template<typename _Tp>

__gnu_parallel::_RestrictedBoundedConcurrentQueue< _Tp >::~_RestrictedBoundedConcurrentQueue | ( |  | ) |

inline

Destructor. Not to be called concurrent, of course.

Definition at line 77 of file queue.h.

## Member Function Documentation

## pop_back()

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.

References __gnu_parallel::__compare_and_swap(), __gnu_parallel::__decode2(), and __gnu_parallel::__encode2().

## pop_front()

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.

References __gnu_parallel::__compare_and_swap(), __gnu_parallel::__decode2(), and __gnu_parallel::__encode2().

## push_front()

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.

References __gnu_parallel::__decode2(), __gnu_parallel::__encode2(), and __gnu_parallel::__fetch_and_add().

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

- queue.h