CARLA
Classes | Namespaces | Macros | Typedefs | Functions | Variables
ConcurrentQueue.h File Reference
#include <atomic>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <type_traits>
#include <algorithm>
#include <utility>
#include <limits>
#include <climits>
#include <array>
#include <thread>
#include <carla/Exception.h>
+ Include dependency graph for ConcurrentQueue.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  moodycamel::details::_hash_32_or_64< use32 >
 
struct  moodycamel::details::_hash_32_or_64< 1 >
 
struct  moodycamel::ConcurrentQueue< T, Traits >::Block
 
struct  moodycamel::ConcurrentQueue< T, Traits >::ImplicitProducer::BlockIndexEntry
 
struct  moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::BlockIndexEntry
 
struct  moodycamel::ConcurrentQueue< T, Traits >::ImplicitProducer::BlockIndexHeader
 
struct  moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::BlockIndexHeader
 
class  moodycamel::BlockingConcurrentQueue< T, Traits >
 
class  moodycamel::ConcurrentQueue< T, Traits >
 
class  moodycamel::ConcurrentQueue< T, Traits >
 
struct  moodycamel::ConcurrentQueueDefaultTraits
 
struct  moodycamel::details::ConcurrentQueueProducerTypelessBase
 
struct  moodycamel::details::const_numeric_max< T >
 
struct  moodycamel::ConsumerToken
 
struct  moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer
 
struct  moodycamel::ConcurrentQueue< T, Traits >::FreeList< N >
 
struct  moodycamel::ConcurrentQueue< T, Traits >::FreeListNode< N >
 
struct  moodycamel::details::hash_32_or_64< size >
 
struct  moodycamel::ConcurrentQueue< T, Traits >::ImplicitProducer
 
struct  moodycamel::ConcurrentQueue< T, Traits >::ImplicitProducerHash
 
struct  moodycamel::ConcurrentQueue< T, Traits >::ImplicitProducerKVP
 
struct  moodycamel::details::is_trivially_destructible< T >
 
union  moodycamel::details::max_align_t
 
struct  moodycamel::details::nomove_if< Enable >
 
struct  moodycamel::details::nomove_if< false >
 
struct  moodycamel::ConcurrentQueue< T, Traits >::ProducerBase
 
struct  moodycamel::ProducerToken
 
struct  moodycamel::details::static_is_lock_free< T >
 
struct  moodycamel::details::static_is_lock_free< bool >
 
struct  moodycamel::details::static_is_lock_free< U * >
 
struct  moodycamel::details::static_is_lock_free_num< T >
 
struct  moodycamel::details::static_is_lock_free_num< int >
 
struct  moodycamel::details::static_is_lock_free_num< long >
 
struct  moodycamel::details::static_is_lock_free_num< long long >
 
struct  moodycamel::details::static_is_lock_free_num< short >
 
struct  moodycamel::details::static_is_lock_free_num< signed char >
 
struct  moodycamel::details::thread_id_converter< thread_id_t >
 

Namespaces

 moodycamel
 
 moodycamel::details
 

Macros

#define MOODYCAMEL_CATCH(...)   catch(__VA_ARGS__)
 
#define MOODYCAMEL_DELETE_FUNCTION   = delete
 
#define MOODYCAMEL_EXCEPTIONS_ENABLED
 
#define MOODYCAMEL_NOEXCEPT   noexcept
 
#define MOODYCAMEL_NOEXCEPT_ASSIGN(type, valueType, expr)   noexcept(expr)
 
#define MOODYCAMEL_NOEXCEPT_CTOR(type, valueType, expr)   noexcept(expr)
 
#define MOODYCAMEL_RETHROW   throw
 
#define MOODYCAMEL_THREADLOCAL   thread_local
 
#define MOODYCAMEL_THROW(expr)   ::carla::throw_exception(expr)
 
#define MOODYCAMEL_TRY   try
 

Typedefs

typedef std::max_align_t moodycamel::details::std_max_align_t
 
typedef std::uintptr_t moodycamel::details::thread_id_t
 

Functions

template<typename U >
static char * moodycamel::details::align_for (char *ptr)
 
template<typename T >
static T moodycamel::details::ceil_to_pow_2 (T x)
 
template<typename T >
static bool moodycamel::details::circular_less_than (T a, T b)
 
template<typename It >
static auto moodycamel::details::deref_noexcept (It &it) MOODYCAMEL_NOEXCEPT -> decltype(*it)
 
static size_t moodycamel::details::hash_thread_id (thread_id_t id)
 
static bool() moodycamel::details::likely (bool x)
 
template<typename T >
static T const & moodycamel::details::nomove (T const &x)
 
template<typename T , typename Traits >
void moodycamel::swap (typename ConcurrentQueue< T, Traits >::ImplicitProducerKVP &a, typename ConcurrentQueue< T, Traits >::ImplicitProducerKVP &b) MOODYCAMEL_NOEXCEPT
 
template<typename T , typename Traits >
void moodycamel::swap (ConcurrentQueue< T, Traits > &a, ConcurrentQueue< T, Traits > &b) MOODYCAMEL_NOEXCEPT
 
void moodycamel::swap (ProducerToken &a, ProducerToken &b) MOODYCAMEL_NOEXCEPT
 
void moodycamel::swap (ConsumerToken &a, ConsumerToken &b) MOODYCAMEL_NOEXCEPT
 
template<typename T >
static void moodycamel::details::swap_relaxed (std::atomic< T > &left, std::atomic< T > &right)
 
static thread_id_t moodycamel::details::thread_id ()
 
static bool() moodycamel::details::unlikely (bool x)
 

Variables

static const thread_id_t moodycamel::details::invalid_thread_id = 0
 
static const thread_id_t moodycamel::details::invalid_thread_id2 = 1
 

Macro Definition Documentation

◆ MOODYCAMEL_CATCH

#define MOODYCAMEL_CATCH (   ...)    catch(__VA_ARGS__)

◆ MOODYCAMEL_DELETE_FUNCTION

#define MOODYCAMEL_DELETE_FUNCTION   = delete

◆ MOODYCAMEL_EXCEPTIONS_ENABLED

#define MOODYCAMEL_EXCEPTIONS_ENABLED

Definition at line 157 of file ConcurrentQueue.h.

◆ MOODYCAMEL_NOEXCEPT

#define MOODYCAMEL_NOEXCEPT   noexcept

◆ MOODYCAMEL_NOEXCEPT_ASSIGN

#define MOODYCAMEL_NOEXCEPT_ASSIGN (   type,
  valueType,
  expr 
)    noexcept(expr)

◆ MOODYCAMEL_NOEXCEPT_CTOR

#define MOODYCAMEL_NOEXCEPT_CTOR (   type,
  valueType,
  expr 
)    noexcept(expr)

◆ MOODYCAMEL_RETHROW

#define MOODYCAMEL_RETHROW   throw

◆ MOODYCAMEL_THREADLOCAL

#define MOODYCAMEL_THREADLOCAL   thread_local

Definition at line 144 of file ConcurrentQueue.h.

Referenced by moodycamel::details::thread_id().

◆ MOODYCAMEL_THROW

#define MOODYCAMEL_THROW (   expr)    ::carla::throw_exception(expr)

Definition at line 173 of file ConcurrentQueue.h.

◆ MOODYCAMEL_TRY

#define MOODYCAMEL_TRY   try