AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
MPSCQueue.h File Reference
#include <atomic>
#include <memory>

Go to the source code of this file.

Classes

class  Acore::Impl::MPSCQueueNonIntrusive< T >
 C++ implementation of Dmitry Vyukov's lock-free MPSC queue (Non-Intrusive). More...
 
struct  Acore::Impl::MPSCQueueNonIntrusive< T >::Node
 A structure representing a node in the queue. More...
 
class  Acore::Impl::MPSCQueueIntrusive< T, IntrusiveLink >
 C++ implementation of Dmitry Vyukov's lock-free MPSC queue (Intrusive). More...
 

Namespaces

namespace  Acore
 
namespace  Acore::Impl
 

Typedefs

template<typename T , std::atomic< T * > T::* IntrusiveLink = nullptr>
using MPSCQueue = std::conditional_t< IntrusiveLink !=nullptr, Acore::Impl::MPSCQueueIntrusive< T, IntrusiveLink >, Acore::Impl::MPSCQueueNonIntrusive< T > >
 Conditional type alias for MPSCQueue.
 

Typedef Documentation

◆ MPSCQueue

template<typename T , std::atomic< T * > T::* IntrusiveLink = nullptr>
using MPSCQueue = std::conditional_t<IntrusiveLink != nullptr, Acore::Impl::MPSCQueueIntrusive<T, IntrusiveLink>, Acore::Impl::MPSCQueueNonIntrusive<T> >

Conditional type alias for MPSCQueue.

This alias provides the appropriate type of MPSCQueue based on whether the queue is intrusive or non-intrusive.

Template Parameters
TThe type of data that is being enqueued in the queue.
IntrusiveLinkIf provided, the queue will be intrusive, otherwise, it will be non-intrusive.