CARLA
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Private Attributes | List of all members
moodycamel::ConcurrentQueue< T, Traits >::Block Struct Reference

Public Member Functions

 Block ()
 
template<InnerQueueContext context>
bool is_empty () const
 
T const * operator[] (index_t idx) const MOODYCAMEL_NOEXCEPT
 
T * operator[] (index_t idx) 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_t > elementsCompletelyDequeued
 
std::atomic< bool > emptyFlags [BLOCK_SIZE<=EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD ? BLOCK_SIZE :1]
 
std::atomic< Block * > freeListNext
 
std::atomic< std::uint32_t > freeListRefs
 
Block * next
 
std::atomic< bool > shouldBeOnFreeList
 

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

◆ operator[]() [1/2]

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

◆ operator[]() [2/2]

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

◆ reset_empty()

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

◆ set_all_empty()

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

◆ set_empty()

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

◆ 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

Member Data Documentation

◆ [union]

union { ... } moodycamel::ConcurrentQueue< T, Traits >::Block

◆ 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

◆ elements

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

◆ elementsCompletelyDequeued

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

◆ 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]

◆ 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: