CARLA
Public Member Functions | Public Attributes | Private Attributes | List of all members
moodycamel::ConcurrentQueue< T, Traits >::Block Struct Reference
+ Collaboration diagram for moodycamel::ConcurrentQueue< T, Traits >::Block:

Public Member Functions

 Block ()
 
template<InnerQueueContext context>
bool is_empty () const
 
T * operator[] (index_t idx) MOODYCAMEL_NOEXCEPT
 
T const * operator[] (index_t idx) const MOODYCAMEL_NOEXCEPT
 
template<InnerQueueContext context>
void reset_empty ()
 
template<InnerQueueContext context>
void set_all_empty ()
 
template<InnerQueueContext context>
bool set_empty (index_t i)
 
template<InnerQueueContext context>
bool set_many_empty (index_t i, size_t count)
 

Public Attributes

bool dynamicallyAllocated
 
std::atomic< size_telementsCompletelyDequeued
 
std::atomic< bool > emptyFlags [BLOCK_SIZE<=EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD ? BLOCK_SIZE :1]
 
std::atomic< Block * > freeListNext
 
std::atomic< std::uint32_t > freeListRefs
 
Blocknext
 
std::atomic< bool > shouldBeOnFreeList
 
details::max_align_t dummy
 
char elements [sizeof(T) *BLOCK_SIZE]
 

Private Attributes

union {
   details::max_align_t   dummy
 
   char   elements [sizeof(T) *BLOCK_SIZE]
 
}; 
 

Detailed Description

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
struct moodycamel::ConcurrentQueue< T, Traits >::Block

Definition at line 1487 of file ConcurrentQueue.h.

Constructor & Destructor Documentation

◆ Block()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
moodycamel::ConcurrentQueue< T, Traits >::Block::Block ( )
inline

Definition at line 1489 of file ConcurrentQueue.h.

Member Function Documentation

◆ is_empty()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
template<InnerQueueContext context>
bool moodycamel::ConcurrentQueue< T, Traits >::Block::is_empty ( ) const
inline

Definition at line 1498 of file ConcurrentQueue.h.

◆ operator[]() [1/2]

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
T* moodycamel::ConcurrentQueue< T, Traits >::Block::operator[] ( index_t  idx)
inline

Definition at line 1594 of file ConcurrentQueue.h.

◆ operator[]() [2/2]

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
T const* moodycamel::ConcurrentQueue< T, Traits >::Block::operator[] ( index_t  idx) const
inline

Definition at line 1595 of file ConcurrentQueue.h.

◆ reset_empty()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
template<InnerQueueContext context>
void moodycamel::ConcurrentQueue< T, Traits >::Block::reset_empty ( )
inline

Definition at line 1580 of file ConcurrentQueue.h.

◆ set_all_empty()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
template<InnerQueueContext context>
void moodycamel::ConcurrentQueue< T, Traits >::Block::set_all_empty ( )
inline

Definition at line 1565 of file ConcurrentQueue.h.

◆ set_empty()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
template<InnerQueueContext context>
bool moodycamel::ConcurrentQueue< T, Traits >::Block::set_empty ( index_t  i)
inline

Definition at line 1525 of file ConcurrentQueue.h.

◆ set_many_empty()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
template<InnerQueueContext context>
bool moodycamel::ConcurrentQueue< T, Traits >::Block::set_many_empty ( index_t  i,
size_t  count 
)
inline

Definition at line 1544 of file ConcurrentQueue.h.

Member Data Documentation

◆ @12

union { ... }

◆ dummy

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
details::max_align_t moodycamel::ConcurrentQueue< T, Traits >::Block::dummy

Definition at line 1610 of file ConcurrentQueue.h.

◆ dynamicallyAllocated

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
bool moodycamel::ConcurrentQueue< T, Traits >::Block::dynamicallyAllocated

Definition at line 1620 of file ConcurrentQueue.h.

◆ elements

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
char moodycamel::ConcurrentQueue< T, Traits >::Block::elements[sizeof(T) *BLOCK_SIZE]

Definition at line 1609 of file ConcurrentQueue.h.

◆ elementsCompletelyDequeued

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
std::atomic<size_t> moodycamel::ConcurrentQueue< T, Traits >::Block::elementsCompletelyDequeued

Definition at line 1614 of file ConcurrentQueue.h.

◆ emptyFlags

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
std::atomic<bool> moodycamel::ConcurrentQueue< T, Traits >::Block::emptyFlags[BLOCK_SIZE<=EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD ? BLOCK_SIZE :1]

Definition at line 1615 of file ConcurrentQueue.h.

◆ freeListNext

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
std::atomic<Block*> moodycamel::ConcurrentQueue< T, Traits >::Block::freeListNext

Definition at line 1618 of file ConcurrentQueue.h.

◆ freeListRefs

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
std::atomic<std::uint32_t> moodycamel::ConcurrentQueue< T, Traits >::Block::freeListRefs

Definition at line 1617 of file ConcurrentQueue.h.

◆ next

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
Block* moodycamel::ConcurrentQueue< T, Traits >::Block::next

◆ shouldBeOnFreeList

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
std::atomic<bool> moodycamel::ConcurrentQueue< T, Traits >::Block::shouldBeOnFreeList

Definition at line 1619 of file ConcurrentQueue.h.


The documentation for this struct was generated from the following file: