命名空间 | |
| 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().
这是这个函数的调用关系图:
|
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().
这是这个函数的调用关系图:
|
private |
在文件 ConcurrentQueue.h 第 3277 行定义.
引用了 recycle_or_create_producer().
被这些函数引用 get_or_add_implicit_producer() , 以及 recycle_or_create_producer().
函数调用图:
这是这个函数的调用关系图:
|
private |
|
private |
在文件 ConcurrentQueue.h 第 3337 行定义.
引用了 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 |
在文件 ConcurrentQueue.h 第 3703 行定义.
被这些函数引用 moodycamel::ConcurrentQueue< T, Traits >::ConcurrentQueue() , 以及 get_or_add_implicit_producer().
|
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_bulk(), moodycamel::ConcurrentQueue< T, Traits >::try_dequeue_non_interleaved(), update_current_producer_after_rotation() , 以及 moodycamel::ConcurrentQueue< T, Traits >::~ConcurrentQueue().
|
private |