命名空间 | |
namespace | details |
类 | |
struct | Block |
class | BlockingConcurrentQueue |
class | ConcurrentQueue |
struct | ConcurrentQueueDefaultTraits |
struct | ConsumerToken |
struct | ExplicitProducer |
struct | FreeList |
struct | FreeListNode |
struct | ImplicitProducer |
struct | ImplicitProducerHash |
struct | ImplicitProducerKVP |
struct | ProducerBase |
struct | ProducerToken |
枚举 | |
enum | AllocationMode { CanAlloc , CannotAlloc } |
enum | InnerQueueContext { implicit_context = 0 , explicit_context = 1 } |
函数 | |
void | add_block_to_free_list (Block *block) |
void | add_blocks_to_free_list (Block *block) |
ProducerBase * | add_producer (ProducerBase *producer) |
template<typename U > | |
static U * | create () |
template<typename U , typename A1 > | |
static U * | create (A1 &&a1) |
template<typename U > | |
static U * | create_array (size_t count) |
template<typename U > | |
static void | destroy (U *p) |
template<typename U > | |
static void | destroy_array (U *p, size_t count) |
ImplicitProducer * | get_or_add_implicit_producer () |
template<AllocationMode canAlloc, typename U > | |
bool | inner_enqueue (producer_token_t const &token, U &&element) |
template<AllocationMode canAlloc, typename U > | |
bool | inner_enqueue (U &&element) |
template<AllocationMode canAlloc, typename It > | |
bool | inner_enqueue_bulk (It itemFirst, size_t count) |
template<AllocationMode canAlloc, typename It > | |
bool | inner_enqueue_bulk (producer_token_t const &token, It itemFirst, size_t count) |
static bool | is_lock_free () |
void | populate_initial_block_list (size_t blockCount) |
void | populate_initial_implicit_producer_hash () |
ProducerBase * | recycle_or_create_producer (bool isExplicit) |
ProducerBase * | recycle_or_create_producer (bool isExplicit, bool &recycled) |
void | reown_producers () |
template<AllocationMode canAlloc> | |
Block * | requisition_block () |
size_t | size_approx () const |
template<typename T , typename Traits > | |
void | swap (typename ConcurrentQueue< T, Traits >::ImplicitProducerKVP &a, typename ConcurrentQueue< T, Traits >::ImplicitProducerKVP &b) MOODYCAMEL_NOEXCEPT |
void | swap_implicit_producer_hashes (ConcurrentQueue &other) |
template<typename T , typename Traits = ConcurrentQueueDefaultTraits> | |
class moodycamel::ConcurrentQueue | try_dequeue_bulk_from_producer (producer_token_t const &producer, It itemFirst, size_t max) |
Block * | try_get_block_from_free_list () |
Block * | try_get_block_from_initial_pool () |
bool | update_current_producer_after_rotation (consumer_token_t &token) |
变量 | |
FreeList< Block > | freeList |
std::atomic< std::uint32_t > | globalExplicitConsumerOffset |
std::atomic< ImplicitProducerHash * > | implicitProducerHash |
std::atomic< size_t > | implicitProducerHashCount |
std::atomic_flag | implicitProducerHashResizeInProgress |
Block * | initialBlockPool |
std::atomic< size_t > | initialBlockPoolIndex |
size_t | initialBlockPoolSize |
ImplicitProducerHash | initialImplicitProducerHash |
std::array< ImplicitProducerKVP, INITIAL_IMPLICIT_PRODUCER_HASH_SIZE > | initialImplicitProducerHashEntries |
std::atomic< std::uint32_t > | nextExplicitConsumerId |
std::atomic< std::uint32_t > | producerCount |
std::atomic< ProducerBase * > | producerListTail |
enum moodycamel::AllocationMode | try_dequeue_bulk_from_producer |
|
private |
枚举值 | |
---|---|
CanAlloc | |
CannotAlloc |
在文件 ConcurrentQueue.h 第 1394 行定义.
|
private |
枚举值 | |
---|---|
implicit_context | |
explicit_context |
在文件 ConcurrentQueue.h 第 1596 行定义.
|
inlineprivate |
|
inlineprivate |
|
private |
在文件 ConcurrentQueue.h 第 3304 行定义.
引用了 moodycamel::ProducerBase::isExplicit, moodycamel::details::ConcurrentQueueProducerTypelessBase::next, producerCount , 以及 producerListTail.
被这些函数引用 recycle_or_create_producer().
|
inlinestaticprivate |
在文件 ConcurrentQueue.h 第 3663 行定义.
|
inlinestaticprivate |
在文件 ConcurrentQueue.h 第 3670 行定义.
|
inlinestaticprivate |
在文件 ConcurrentQueue.h 第 3636 行定义.
|
inlinestaticprivate |
在文件 ConcurrentQueue.h 第 3677 行定义.
被这些函数引用 moodycamel::ConcurrentQueue< T, Traits >::~ConcurrentQueue().
|
inlinestaticprivate |
在文件 ConcurrentQueue.h 第 3651 行定义.
被这些函数引用 moodycamel::ConcurrentQueue< T, Traits >::~ConcurrentQueue().
|
private |
在文件 ConcurrentQueue.h 第 3439 行定义.
引用了 moodycamel::ImplicitProducerHash::capacity, moodycamel::ImplicitProducerHash::entries, moodycamel::details::hash_thread_id(), implicitProducerHash, implicitProducerHashCount, implicitProducerHashResizeInProgress, moodycamel::details::ConcurrentQueueProducerTypelessBase::inactive, moodycamel::details::invalid_thread_id, moodycamel::details::invalid_thread_id2, moodycamel::ImplicitProducerKVP::key, moodycamel::ProducerBase::parent, recycle_or_create_producer() , 以及 moodycamel::details::thread_id().
被这些函数引用 inner_enqueue() , 以及 inner_enqueue_bulk().
|
inlineprivate |
在文件 ConcurrentQueue.h 第 1402 行定义.
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
在文件 ConcurrentQueue.h 第 1417 行定义.
|
static |
在文件 ConcurrentQueue.h 第 1371 行定义.
|
private |
在文件 ConcurrentQueue.h 第 3058 行定义.
引用了 moodycamel::Block::dynamicallyAllocated, initialBlockPool , 以及 initialBlockPoolSize.
被这些函数引用 moodycamel::ConcurrentQueue< T, Traits >::ConcurrentQueue() , 以及 moodycamel::ConcurrentQueue< T, Traits >::ConcurrentQueue().
|
inlineprivate |
在文件 ConcurrentQueue.h 第 3389 行定义.
引用了 moodycamel::ImplicitProducerHash::capacity, implicitProducerHash, implicitProducerHashCount, INITIAL_IMPLICIT_PRODUCER_HASH_SIZE, initialImplicitProducerHash, initialImplicitProducerHashEntries , 以及 moodycamel::details::invalid_thread_id.
被这些函数引用 moodycamel::ConcurrentQueue< T, Traits >::ConcurrentQueue(), moodycamel::ConcurrentQueue< T, Traits >::ConcurrentQueue() , 以及 moodycamel::ConcurrentQueue< T, Traits >::ConcurrentQueue().
|
private |
在文件 ConcurrentQueue.h 第 3277 行定义.
引用了 recycle_or_create_producer().
被这些函数引用 get_or_add_implicit_producer() , 以及 recycle_or_create_producer().
|
private |
|
private |
在文件 ConcurrentQueue.h 第 3337 行定义.
引用了 moodycamel::ProducerBase::parent , 以及 producerListTail.
被这些函数引用 moodycamel::ConcurrentQueue< T, Traits >::ConcurrentQueue() , 以及 moodycamel::ConcurrentQueue< T, Traits >::swap_internal().
|
private |
在文件 ConcurrentQueue.h 第 3110 行定义.
引用了 CanAlloc, try_get_block_from_free_list() , 以及 try_get_block_from_initial_pool().
size_t moodycamel::size_approx | ( | ) | const |
在文件 ConcurrentQueue.h 第 1355 行定义.
|
inline |
|
private |
在文件 ConcurrentQueue.h 第 3404 行定义.
引用了 moodycamel::ImplicitProducerHash::entries, implicitProducerHash, implicitProducerHashCount, INITIAL_IMPLICIT_PRODUCER_HASH_SIZE, initialImplicitProducerHash, initialImplicitProducerHashEntries, moodycamel::ImplicitProducerHash::prev , 以及 moodycamel::details::swap_relaxed().
被这些函数引用 moodycamel::ConcurrentQueue< T, Traits >::ConcurrentQueue() , 以及 moodycamel::ConcurrentQueue< T, Traits >::swap_internal().
class moodycamel::ConcurrentQueue moodycamel::try_dequeue_bulk_from_producer | ( | producer_token_t const & | producer, |
It | itemFirst, | ||
size_t | max ) |
在文件 ConcurrentQueue.h 第 743 行定义.
|
inlineprivate |
|
inlineprivate |
在文件 ConcurrentQueue.h 第 3075 行定义.
引用了 initialBlockPool, initialBlockPoolIndex , 以及 initialBlockPoolSize.
被这些函数引用 requisition_block().
|
inlineprivate |
在文件 ConcurrentQueue.h 第 1429 行定义.
引用了 moodycamel::ConsumerToken::desiredProducer, globalExplicitConsumerOffset, moodycamel::ConsumerToken::initialOffset, moodycamel::ConsumerToken::lastKnownGlobalOffset, producerCount, producerListTail , 以及 moodycamel::details::unlikely().
被这些函数引用 moodycamel::ConcurrentQueue< T, Traits >::try_dequeue() , 以及 moodycamel::ConcurrentQueue< T, Traits >::try_dequeue_bulk().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
在文件 ConcurrentQueue.h 第 3689 行定义.
被这些函数引用 moodycamel::ConcurrentQueue< T, Traits >::swap_internal() , 以及 try_get_block_from_initial_pool().
|
private |
|
private |
在文件 ConcurrentQueue.h 第 3701 行定义.
被这些函数引用 populate_initial_implicit_producer_hash() , 以及 swap_implicit_producer_hashes().
|
private |
在文件 ConcurrentQueue.h 第 3702 行定义.
被这些函数引用 populate_initial_implicit_producer_hash() , 以及 swap_implicit_producer_hashes().
|
private |
|
private |
|
private |
在文件 ConcurrentQueue.h 第 3686 行定义.
被这些函数引用 add_producer(), recycle_or_create_producer(), reown_producers(), moodycamel::ConcurrentQueue< T, Traits >::swap_internal(), moodycamel::ConcurrentQueue< T, Traits >::try_dequeue(), moodycamel::ConcurrentQueue< T, Traits >::try_dequeue(), moodycamel::ConcurrentQueue< T, Traits >::try_dequeue_bulk(), moodycamel::ConcurrentQueue< T, Traits >::try_dequeue_bulk(), moodycamel::ConcurrentQueue< T, Traits >::try_dequeue_non_interleaved(), update_current_producer_after_rotation() , 以及 moodycamel::ConcurrentQueue< T, Traits >::~ConcurrentQueue().
|
private |