A library for working with phylogenetic and population genetic data.
v0.32.0
genesis::utils::details Namespace Reference

Classes

struct  _hash_32_or_64
 
struct  _hash_32_or_64< 1 >
 
struct  ConcurrentQueueProducerTypelessBase
 
struct  const_numeric_max
 
struct  hash_32_or_64
 
struct  identity
 
struct  is_trivially_destructible
 
union  max_align_t
 
struct  nomove_if
 
struct  nomove_if< false >
 
struct  static_is_lock_free
 
struct  static_is_lock_free< bool >
 
struct  static_is_lock_free< U * >
 
struct  static_is_lock_free_num
 
struct  static_is_lock_free_num< int >
 
struct  static_is_lock_free_num< long >
 
struct  static_is_lock_free_num< long long >
 
struct  static_is_lock_free_num< short >
 
struct  static_is_lock_free_num< signed char >
 
struct  thread_id_converter
 
struct  ThreadExitListener
 
class  ThreadExitNotifier
 

Functions

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

Typedefs

typedef std::max_align_t std_max_align_t
 
typedef std::uintptr_t thread_id_t
 

Variables

static const thread_id_t invalid_thread_id = 0
 
static const thread_id_t invalid_thread_id2 = 1
 

Function Documentation

◆ align_for()

static char* genesis::utils::details::align_for ( char *  ptr)
inlinestatic

Definition at line 628 of file concurrent_queue.hpp.

◆ ceil_to_pow_2()

static T genesis::utils::details::ceil_to_pow_2 ( x)
inlinestatic

Definition at line 635 of file concurrent_queue.hpp.

◆ circular_less_than()

static bool genesis::utils::details::circular_less_than ( a,
b 
)
inlinestatic

Definition at line 619 of file concurrent_queue.hpp.

◆ deref_noexcept()

static auto genesis::utils::details::deref_noexcept ( It &  it) -> decltype(*it)
inlinestaticnoexcept

Definition at line 685 of file concurrent_queue.hpp.

◆ hash_thread_id()

static size_t genesis::utils::details::hash_thread_id ( thread_id_t  id)
inlinestatic

Definition at line 611 of file concurrent_queue.hpp.

◆ likely()

static bool() genesis::utils::details::likely ( bool  x)
inlinestatic

Definition at line 412 of file concurrent_queue.hpp.

◆ nomove()

static T const& genesis::utils::details::nomove ( T const &  x)
inlinestatic

Definition at line 660 of file concurrent_queue.hpp.

◆ swap_relaxed()

static void genesis::utils::details::swap_relaxed ( std::atomic< T > &  left,
std::atomic< T > &  right 
)
inlinestatic

Definition at line 652 of file concurrent_queue.hpp.

◆ thread_id()

thread_id_t genesis::utils::details::thread_id ( )
inline

Definition at line 243 of file concurrent_queue.hpp.

◆ unlikely()

static bool() genesis::utils::details::unlikely ( bool  x)
inlinestatic

Definition at line 416 of file concurrent_queue.hpp.

Typedef Documentation

◆ std_max_align_t

typedef std::max_align_t std_max_align_t

Definition at line 440 of file concurrent_queue.hpp.

◆ thread_id_t

typedef std::uintptr_t thread_id_t

Definition at line 240 of file concurrent_queue.hpp.

Variable Documentation

◆ invalid_thread_id

const thread_id_t invalid_thread_id = 0
static

Definition at line 241 of file concurrent_queue.hpp.

◆ invalid_thread_id2

const thread_id_t invalid_thread_id2 = 1
static

Definition at line 242 of file concurrent_queue.hpp.