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)

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)

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>&)

Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1135

Parameters

const ConcurrentQueue<T, Traits>&

ConcurrentQueue<T, Traits>(
    ConcurrentQueue<T, Traits>&& other) noexcept

Declared 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)

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)

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)

Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1257

Parameters

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)

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)

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()

Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1646

pika::concurrency::detail::ConcurrentQueue::size_t
size_approx() const

Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1632

inline void swap(
    ConcurrentQueue<T, Traits>& other) noexcept

Declared 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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1326

Parameters

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)

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)

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>()

Declared at: libs/pika/concurrency/include/pika/concurrency/concurrentqueue.hpp:1082