Agora  1.2.0
Agora project
moodycamel::ConcurrentQueue< T, Traits >::FreeList< N > Struct Template Reference

Public Member Functions

 FreeList ()
 
 FreeList (FreeList &&other)
 
void swap (FreeList &other)
 
 FreeList (FreeList const &)=delete
 
FreeListoperator= (FreeList const &)=delete
 
void add (N *node)
 
N * try_get ()
 
N * head_unsafe () const
 

Private Member Functions

void add_knowing_refcount_is_zero (N *node)
 

Private Attributes

std::atomic< N * > freeListHead
 

Static Private Attributes

static const std::uint32_t REFS_MASK = 0x7FFFFFFF
 
static const std::uint32_t SHOULD_BE_ON_FREELIST = 0x80000000
 

Constructor & Destructor Documentation

◆ FreeList() [1/3]

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

◆ FreeList() [2/3]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename N >
moodycamel::ConcurrentQueue< T, Traits >::FreeList< N >::FreeList ( FreeList< N > &&  other)
inline

◆ FreeList() [3/3]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename N >
moodycamel::ConcurrentQueue< T, Traits >::FreeList< N >::FreeList ( FreeList< N > const &  )
delete

Member Function Documentation

◆ add()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename N >
void moodycamel::ConcurrentQueue< T, Traits >::FreeList< N >::add ( N *  node)
inline

◆ add_knowing_refcount_is_zero()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename N >
void moodycamel::ConcurrentQueue< T, Traits >::FreeList< N >::add_knowing_refcount_is_zero ( N *  node)
inlineprivate
Here is the caller graph for this function:

◆ head_unsafe()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename N >
N* moodycamel::ConcurrentQueue< T, Traits >::FreeList< N >::head_unsafe ( ) const
inline

◆ operator=()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename N >
FreeList& moodycamel::ConcurrentQueue< T, Traits >::FreeList< N >::operator= ( FreeList< N > const &  )
delete

◆ swap()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename N >
void moodycamel::ConcurrentQueue< T, Traits >::FreeList< N >::swap ( FreeList< N > &  other)
inline

◆ try_get()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename N >
N* moodycamel::ConcurrentQueue< T, Traits >::FreeList< N >::try_get ( )
inline

Member Data Documentation

◆ freeListHead

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename N >
std::atomic<N*> moodycamel::ConcurrentQueue< T, Traits >::FreeList< N >::freeListHead
private

◆ REFS_MASK

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename N >
const std::uint32_t moodycamel::ConcurrentQueue< T, Traits >::FreeList< N >::REFS_MASK = 0x7FFFFFFF
staticprivate

◆ SHOULD_BE_ON_FREELIST

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename N >
const std::uint32_t moodycamel::ConcurrentQueue< T, Traits >::FreeList< N >::SHOULD_BE_ON_FREELIST = 0x80000000
staticprivate

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