类 | |
struct | BlockIndexEntry |
struct | BlockIndexHeader |
Public 成员函数 | |
template<typename U > | |
bool | dequeue (U &element) |
template<typename It > | |
size_t | dequeue_bulk (It &itemFirst, size_t max) |
template<AllocationMode allocMode, typename U > | |
bool | enqueue (U &&element) |
template<AllocationMode allocMode, typename It > | |
bool | enqueue_bulk (It itemFirst, size_t count) |
ImplicitProducer (ConcurrentQueue *parent) | |
~ImplicitProducer () | |
![]() | |
template<typename U > | |
bool | dequeue (U &element) |
template<typename It > | |
size_t | dequeue_bulk (It &itemFirst, size_t max) |
index_t | getTail () const |
ProducerBase * | next_prod () const |
ProducerBase (ConcurrentQueue *parent_, bool isExplicit_) | |
size_t | size_approx () const |
virtual | ~ProducerBase () |
![]() | |
ConcurrentQueueProducerTypelessBase () | |
Private 成员函数 | |
BlockIndexEntry * | get_block_index_entry_for_index (index_t index) const |
size_t | get_block_index_index_for_index (index_t index, BlockIndexHeader *&localBlockIndex) const |
template<AllocationMode allocMode> | |
bool | insert_block_index_entry (BlockIndexEntry *&idxEntry, index_t blockStartIndex) |
bool | new_block_index () |
void | rewind_block_index_tail () |
Private 属性 | |
std::atomic< BlockIndexHeader * > | blockIndex |
size_t | nextBlockIndexCapacity |
静态 Private 属性 | |
static const index_t | INVALID_BLOCK_BASE = 1 |
额外继承的成员函数 | |
![]() | |
bool | isExplicit |
ConcurrentQueue * | parent |
![]() | |
std::atomic< bool > | inactive |
ConcurrentQueueProducerTypelessBase * | next |
ProducerToken * | token |
![]() | |
std::atomic< index_t > | dequeueOptimisticCount |
std::atomic< index_t > | dequeueOvercommit |
std::atomic< index_t > | headIndex |
Block * | tailBlock |
std::atomic< index_t > | tailIndex |
在文件 ConcurrentQueue.h 第 2458 行定义.
|
inline |
|
inline |
在文件 ConcurrentQueue.h 第 2468 行定义.
引用了 BLOCK_SIZE, blockIndex, moodycamel::details::circular_less_than(), get_block_index_entry_for_index(), moodycamel::ProducerBase::headIndex, moodycamel::details::ConcurrentQueueProducerTypelessBase::inactive, moodycamel::ProducerBase::parent, moodycamel::ProducerBase::tailBlock, moodycamel::ProducerBase::tailIndex , 以及 moodycamel::ImplicitProducer::BlockIndexEntry::value.
|
inline |
在文件 ConcurrentQueue.h 第 2587 行定义.
引用了 moodycamel::ProducerBase::dequeueOptimisticCount, moodycamel::ProducerBase::dequeueOvercommit, get_block_index_entry_for_index(), moodycamel::ProducerBase::headIndex, moodycamel::details::likely(), MOODYCAMEL_NOEXCEPT_ASSIGN, moodycamel::ProducerBase::parent, moodycamel::ProducerBase::tailIndex , 以及 moodycamel::ImplicitProducer::BlockIndexEntry::value.
|
inline |
在文件 ConcurrentQueue.h 第 2805 行定义.
引用了 BLOCK_SIZE, moodycamel::ImplicitProducer::BlockIndexHeader::capacity, moodycamel::ProducerBase::dequeueOptimisticCount, moodycamel::ProducerBase::dequeueOvercommit, moodycamel::details::deref_noexcept(), get_block_index_index_for_index(), moodycamel::ProducerBase::headIndex, moodycamel::ImplicitProducer::BlockIndexHeader::index, MOODYCAMEL_CATCH, MOODYCAMEL_NOEXCEPT_ASSIGN, MOODYCAMEL_RETHROW, MOODYCAMEL_TRY, moodycamel::ProducerBase::parent, moodycamel::ProducerBase::tailIndex , 以及 moodycamel::ImplicitProducer::BlockIndexEntry::value.
|
inline |
在文件 ConcurrentQueue.h 第 2523 行定义.
引用了 BLOCK_SIZE, moodycamel::ProducerBase::headIndex, MAX_SUBQUEUE_SIZE, MOODYCAMEL_CATCH, MOODYCAMEL_NOEXCEPT_CTOR, MOODYCAMEL_RETHROW, MOODYCAMEL_TRY, moodycamel::ProducerBase::parent, rewind_block_index_tail(), moodycamel::ProducerBase::tailBlock, moodycamel::ProducerBase::tailIndex , 以及 moodycamel::ImplicitProducer::BlockIndexEntry::value.
|
inline |
在文件 ConcurrentQueue.h 第 2657 行定义.
引用了 BLOCK_SIZE, moodycamel::details::deref_noexcept(), get_block_index_entry_for_index(), moodycamel::ProducerBase::headIndex, MAX_SUBQUEUE_SIZE, MOODYCAMEL_CATCH, MOODYCAMEL_NOEXCEPT_CTOR, MOODYCAMEL_RETHROW, MOODYCAMEL_TRY, moodycamel::Block::next, moodycamel::ProducerBase::parent, rewind_block_index_tail(), moodycamel::ProducerBase::tailBlock, moodycamel::ProducerBase::tailIndex , 以及 moodycamel::ImplicitProducer::BlockIndexEntry::value.
|
inlineprivate |
在文件 ConcurrentQueue.h 第 2961 行定义.
引用了 get_block_index_index_for_index() , 以及 moodycamel::ImplicitProducer::BlockIndexHeader::index.
被这些函数引用 dequeue(), enqueue_bulk() , 以及 ~ImplicitProducer().
|
inlineprivate |
在文件 ConcurrentQueue.h 第 2968 行定义.
引用了 BLOCK_SIZE, blockIndex, moodycamel::ImplicitProducer::BlockIndexHeader::capacity, moodycamel::ImplicitProducer::BlockIndexHeader::index, INVALID_BLOCK_BASE, moodycamel::ImplicitProducer::BlockIndexEntry::key, moodycamel::ImplicitProducer::BlockIndexHeader::tail , 以及 moodycamel::ImplicitProducer::BlockIndexEntry::value.
被这些函数引用 dequeue_bulk() , 以及 get_block_index_entry_for_index().
|
inlineprivate |
|
inlineprivate |
在文件 ConcurrentQueue.h 第 2985 行定义.
引用了 blockIndex, INVALID_BLOCK_BASE, moodycamel::ImplicitProducer::BlockIndexEntry::key , 以及 nextBlockIndexCapacity.
被这些函数引用 ImplicitProducer() , 以及 insert_block_index_entry().
|
inlineprivate |
在文件 ConcurrentQueue.h 第 2955 行定义.
引用了 blockIndex.
被这些函数引用 enqueue() , 以及 enqueue_bulk().
|
private |
|
staticprivate |
在文件 ConcurrentQueue.h 第 2908 行定义.
被这些函数引用 get_block_index_index_for_index(), insert_block_index_entry() , 以及 new_block_index().
|
private |
在文件 ConcurrentQueue.h 第 3030 行定义.
被这些函数引用 new_block_index().