class ConcurrentQueue
Declaration
template <typename T,
typename Traits =
pika::concurrency::detail::ConcurrentQueueDefaultTraits>
class ConcurrentQueue { /* full declaration omitted */ };Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:938
Member Variables
- public static const pika::concurrency::detail::ConcurrentQueue:: size_t BLOCK_SIZE = static_cast<typename type-parameter-0-1::size_t>(type-parameter-0-1::BLOCK_SIZE)
- public static const pika::concurrency::detail::ConcurrentQueue:: size_t EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD = static_cast<typename type-parameter-0-1::size_t>(type-parameter-0-1::EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD)
- public static const pika::concurrency::detail::ConcurrentQueue:: size_t EXPLICIT_INITIAL_INDEX_SIZE = static_cast<typename type-parameter-0-1::size_t>(type-parameter-0-1::EXPLICIT_INITIAL_INDEX_SIZE)
- public static const pika::concurrency::detail::ConcurrentQueue:: size_t IMPLICIT_INITIAL_INDEX_SIZE = static_cast<typename type-parameter-0-1::size_t>(type-parameter-0-1::IMPLICIT_INITIAL_INDEX_SIZE)
- public static const pika::concurrency::detail::ConcurrentQueue:: size_t INITIAL_IMPLICIT_PRODUCER_HASH_SIZE = static_cast<typename type-parameter-0-1::size_t>(type-parameter-0-1::INITIAL_IMPLICIT_PRODUCER_HASH_SIZE)
- public static const std::uint32_t EXPLICIT_CONSUMER_CONSUMPTION_QUOTA_BEFORE_ROTATE = static_cast<unsigned int>(type-parameter-0-1::EXPLICIT_CONSUMER_CONSUMPTION_QUOTA_BEFORE_ROTATE)
- public static const pika::concurrency::detail::ConcurrentQueue:: size_t MAX_SUBQUEUE_SIZE = (detail::const_numeric_max<typename type-parameter-0-1::size_t>::value - static_cast<typename type-parameter-0-1::size_t>(type-parameter-0-1::MAX_SUBQUEUE_SIZE) < BLOCK_SIZE) ? detail::const_numeric_max<typename type-parameter-0-1::size_t>::value : ((static_cast<typename type-parameter-0-1::size_t>(type-parameter-0-1::MAX_SUBQUEUE_SIZE) + (BLOCK_SIZE - 1)) / BLOCK_SIZE * BLOCK_SIZE)
Method Overview
- public ConcurrentQueue<T, Traits>(pika::concurrency::detail::ConcurrentQueue::size_t minCapacity, pika::concurrency::detail::ConcurrentQueue::size_t maxExplicitProducers, pika::concurrency::detail::ConcurrentQueue::size_t maxImplicitProducers)
- public ConcurrentQueue<T, Traits>(pika::concurrency::detail::ConcurrentQueue::size_t capacity = 6 * BLOCK_SIZE)
- public ConcurrentQueue<T, Traits>(const ConcurrentQueue<T, Traits> &)
- public ConcurrentQueue<T, Traits>(ConcurrentQueue<T, Traits> && other) noexcept
- public inline bool enqueue(const pika::concurrency::detail::ConcurrentQueue::producer_token_t & token, T && item)
- public inline bool enqueue(const pika::concurrency::detail::ConcurrentQueue::producer_token_t & token, const T & item)
- public inline bool enqueue(T && item)
- public inline bool enqueue(const T & item)
- public template <typename It>bool enqueue_bulk(It itemFirst, pika::concurrency::detail::ConcurrentQueue::size_t count)
- public template <typename It>bool enqueue_bulk(const pika::concurrency::detail::ConcurrentQueue::producer_token_t & token, It itemFirst, pika::concurrency::detail::ConcurrentQueue::size_t count)
- public static bool is_lock_free()
- public pika::concurrency::detail::ConcurrentQueue::size_t size_approx() const
- public inline void swap(ConcurrentQueue<T, Traits> & other) noexcept
- public template <typename U>bool try_dequeue(pika::concurrency::detail::ConcurrentQueue::consumer_token_t & token, U & item)
- public template <typename U>bool try_dequeue(U & item)
- public template <typename It>pika::concurrency::detail::ConcurrentQueue::size_t try_dequeue_bulk(pika::concurrency::detail::ConcurrentQueue::consumer_token_t & token, It itemFirst, pika::concurrency::detail::ConcurrentQueue::size_t max)
- public template <typename It>pika::concurrency::detail::ConcurrentQueue::size_t try_dequeue_bulk(It itemFirst, pika::concurrency::detail::ConcurrentQueue::size_t max)
- public template <typename It>inline pika::concurrency::detail::ConcurrentQueue::size_t try_dequeue_bulk_from_producer(const pika::concurrency::detail::ConcurrentQueue::producer_token_t & producer, It itemFirst, pika::concurrency::detail::ConcurrentQueue::size_t max)
- public template <typename U>inline bool try_dequeue_from_producer(const pika::concurrency::detail::ConcurrentQueue::producer_token_t & producer, U & item)
- public template <typename U>bool try_dequeue_non_interleaved(U & item)
- public inline bool try_enqueue(const pika::concurrency::detail::ConcurrentQueue::producer_token_t & token, T && item)
- public inline bool try_enqueue(const pika::concurrency::detail::ConcurrentQueue::producer_token_t & token, const T & item)
- public inline bool try_enqueue(T && item)
- public inline bool try_enqueue(const T & item)
- public template <typename It>bool try_enqueue_bulk(It itemFirst, pika::concurrency::detail::ConcurrentQueue::size_t count)
- public template <typename It>bool try_enqueue_bulk(const pika::concurrency::detail::ConcurrentQueue::producer_token_t & token, It itemFirst, pika::concurrency::detail::ConcurrentQueue::size_t count)
- public ~ConcurrentQueue<T, Traits>()
Methods
ConcurrentQueue<T, Traits>(
pika::concurrency::detail::ConcurrentQueue::
size_t minCapacity,
pika::concurrency::detail::ConcurrentQueue::
size_t maxExplicitProducers,
pika::concurrency::detail::ConcurrentQueue::
size_t maxImplicitProducers)
ConcurrentQueue<T, Traits>(
pika::concurrency::detail::ConcurrentQueue::
size_t minCapacity,
pika::concurrency::detail::ConcurrentQueue::
size_t maxExplicitProducers,
pika::concurrency::detail::ConcurrentQueue::
size_t maxImplicitProducers)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1056
Parameters
- pika::concurrency::detail::ConcurrentQueue::size_t minCapacity
- pika::concurrency::detail::ConcurrentQueue::size_t maxExplicitProducers
- pika::concurrency::detail::ConcurrentQueue::size_t maxImplicitProducers
ConcurrentQueue<T, Traits>(
pika::concurrency::detail::ConcurrentQueue::
size_t capacity = 6 * BLOCK_SIZE)
ConcurrentQueue<T, Traits>(
pika::concurrency::detail::ConcurrentQueue::
size_t capacity = 6 * BLOCK_SIZE)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1030
Parameters
- pika::concurrency::detail::ConcurrentQueue::size_t capacity = 6 * BLOCK_SIZE
ConcurrentQueue<T, Traits>(
const ConcurrentQueue<T, Traits>&)
ConcurrentQueue<T, Traits>(
const ConcurrentQueue<T, Traits>&)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1135
Parameters
- const ConcurrentQueue<T, Traits>&
ConcurrentQueue<T, Traits>(
ConcurrentQueue<T, Traits>&& other) noexcept
ConcurrentQueue<T, Traits>(
ConcurrentQueue<T, Traits>&& other) noexceptDeclared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1145
Parameters
- ConcurrentQueue<T, Traits>&& other
inline bool enqueue(
const pika::concurrency::detail::
ConcurrentQueue::producer_token_t& token,
T&& item)
inline bool enqueue(
const pika::concurrency::detail::
ConcurrentQueue::producer_token_t& token,
T&& item)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1277
Parameters
- const pika::concurrency::detail::ConcurrentQueue:: producer_token_t& token
- T&& item
inline bool enqueue(
const pika::concurrency::detail::
ConcurrentQueue::producer_token_t& token,
const T& item)
inline bool enqueue(
const pika::concurrency::detail::
ConcurrentQueue::producer_token_t& token,
const T& item)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1268
Parameters
- const pika::concurrency::detail::ConcurrentQueue:: producer_token_t& token
- const T& item
inline bool enqueue(T&& item)
inline bool enqueue(T&& item)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1257
Parameters
- T&& item
inline bool enqueue(const T& item)
inline bool enqueue(const T& item)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1245
Parameters
- const T& item
template <typename It>
bool enqueue_bulk(
It itemFirst,
pika::concurrency::detail::ConcurrentQueue::
size_t count)
template <typename It>
bool enqueue_bulk(
It itemFirst,
pika::concurrency::detail::ConcurrentQueue::
size_t count)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1289
Parameters
- It itemFirst
- pika::concurrency::detail::ConcurrentQueue::size_t count
template <typename It>
bool enqueue_bulk(
const pika::concurrency::detail::
ConcurrentQueue::producer_token_t& token,
It itemFirst,
pika::concurrency::detail::ConcurrentQueue::
size_t count)
template <typename It>
bool enqueue_bulk(
const pika::concurrency::detail::
ConcurrentQueue::producer_token_t& token,
It itemFirst,
pika::concurrency::detail::ConcurrentQueue::
size_t count)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1303
Parameters
- const pika::concurrency::detail::ConcurrentQueue:: producer_token_t& token
- It itemFirst
- pika::concurrency::detail::ConcurrentQueue::size_t count
static bool is_lock_free()
static bool is_lock_free()Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1646
pika::concurrency::detail::ConcurrentQueue::size_t
size_approx() const
pika::concurrency::detail::ConcurrentQueue::size_t
size_approx() constDeclared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1632
inline void swap(
ConcurrentQueue<T, Traits>& other) noexcept
inline void swap(
ConcurrentQueue<T, Traits>& other) noexceptDeclared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1201
Parameters
- ConcurrentQueue<T, Traits>& other
template <typename U>
bool try_dequeue(
pika::concurrency::detail::ConcurrentQueue::
consumer_token_t& token,
U& item)
template <typename U>
bool try_dequeue(
pika::concurrency::detail::ConcurrentQueue::
consumer_token_t& token,
U& item)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1452
Parameters
- pika::concurrency::detail::ConcurrentQueue:: consumer_token_t& token
- U& item
template <typename U>
bool try_dequeue(U& item)
template <typename U>
bool try_dequeue(U& item)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1381
Parameters
- U& item
template <typename It>
pika::concurrency::detail::ConcurrentQueue::size_t
try_dequeue_bulk(
pika::concurrency::detail::ConcurrentQueue::
consumer_token_t& token,
It itemFirst,
pika::concurrency::detail::ConcurrentQueue::
size_t max)
template <typename It>
pika::concurrency::detail::ConcurrentQueue::size_t
try_dequeue_bulk(
pika::concurrency::detail::ConcurrentQueue::
consumer_token_t& token,
It itemFirst,
pika::concurrency::detail::ConcurrentQueue::
size_t max)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1536
Parameters
- pika::concurrency::detail::ConcurrentQueue:: consumer_token_t& token
- It itemFirst
- pika::concurrency::detail::ConcurrentQueue::size_t max
template <typename It>
pika::concurrency::detail::ConcurrentQueue::size_t
try_dequeue_bulk(It itemFirst,
pika::concurrency::detail::
ConcurrentQueue::size_t max)
template <typename It>
pika::concurrency::detail::ConcurrentQueue::size_t
try_dequeue_bulk(It itemFirst,
pika::concurrency::detail::
ConcurrentQueue::size_t max)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1515
Parameters
- It itemFirst
- pika::concurrency::detail::ConcurrentQueue::size_t max
template <typename It>
inline pika::concurrency::detail::
ConcurrentQueue::size_t
try_dequeue_bulk_from_producer(
const pika::concurrency::detail::
ConcurrentQueue::producer_token_t&
producer,
It itemFirst,
pika::concurrency::detail::
ConcurrentQueue::size_t max)
template <typename It>
inline pika::concurrency::detail::
ConcurrentQueue::size_t
try_dequeue_bulk_from_producer(
const pika::concurrency::detail::
ConcurrentQueue::producer_token_t&
producer,
It itemFirst,
pika::concurrency::detail::
ConcurrentQueue::size_t max)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1619
Parameters
- const pika::concurrency::detail::ConcurrentQueue:: producer_token_t& producer
- It itemFirst
- pika::concurrency::detail::ConcurrentQueue::size_t max
template <typename U>
inline bool try_dequeue_from_producer(
const pika::concurrency::detail::
ConcurrentQueue::producer_token_t&
producer,
U& item)
template <typename U>
inline bool try_dequeue_from_producer(
const pika::concurrency::detail::
ConcurrentQueue::producer_token_t&
producer,
U& item)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1604
Parameters
- const pika::concurrency::detail::ConcurrentQueue:: producer_token_t& producer
- U& item
template <typename U>
bool try_dequeue_non_interleaved(U& item)
template <typename U>
bool try_dequeue_non_interleaved(U& item)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1434
Parameters
- U& item
inline bool try_enqueue(
const pika::concurrency::detail::
ConcurrentQueue::producer_token_t& token,
T&& item)
inline bool try_enqueue(
const pika::concurrency::detail::
ConcurrentQueue::producer_token_t& token,
T&& item)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1344
Parameters
- const pika::concurrency::detail::ConcurrentQueue:: producer_token_t& token
- T&& item
inline bool try_enqueue(
const pika::concurrency::detail::
ConcurrentQueue::producer_token_t& token,
const T& item)
inline bool try_enqueue(
const pika::concurrency::detail::
ConcurrentQueue::producer_token_t& token,
const T& item)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1336
Parameters
- const pika::concurrency::detail::ConcurrentQueue:: producer_token_t& token
- const T& item
inline bool try_enqueue(T&& item)
inline bool try_enqueue(T&& item)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1326
Parameters
- T&& item
inline bool try_enqueue(const T& item)
inline bool try_enqueue(const T& item)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1314
Parameters
- const T& item
template <typename It>
bool try_enqueue_bulk(
It itemFirst,
pika::concurrency::detail::ConcurrentQueue::
size_t count)
template <typename It>
bool try_enqueue_bulk(
It itemFirst,
pika::concurrency::detail::ConcurrentQueue::
size_t count)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1357
Parameters
- It itemFirst
- pika::concurrency::detail::ConcurrentQueue::size_t count
template <typename It>
bool try_enqueue_bulk(
const pika::concurrency::detail::
ConcurrentQueue::producer_token_t& token,
It itemFirst,
pika::concurrency::detail::ConcurrentQueue::
size_t count)
template <typename It>
bool try_enqueue_bulk(
const pika::concurrency::detail::
ConcurrentQueue::producer_token_t& token,
It itemFirst,
pika::concurrency::detail::ConcurrentQueue::
size_t count)Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1370
Parameters
- const pika::concurrency::detail::ConcurrentQueue:: producer_token_t& token
- It itemFirst
- pika::concurrency::detail::ConcurrentQueue::size_t count
~ConcurrentQueue<T, Traits>()
~ConcurrentQueue<T, Traits>()Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1082