Tervel  1.0.0
A collection of wait-free containers and algorithms.
Public Member Functions | Public Attributes | Private Attributes | List of all members
tervel::util::PaddedAtomic< T > Class Template Reference

#include <padded_atomic.h>

Public Member Functions

 PaddedAtomic ()
 
 PaddedAtomic (T value)
 
load (std::memory_order memory_order=std::memory_order_seq_cst)
 
void store (T value, std::memory_order memory_order=std::memory_order_seq_cst)
 
exchange (T value, std::memory_order memory_order=std::memory_order_seq_cst)
 
bool compare_exchange_weak (T &expected, T desired, std::memory_order success, std::memory_order failure)
 
bool compare_exchange_weak (T &expected, T desired, std::memory_order order=std::memory_order_seq_cst)
 
bool compare_exchange_strong (T &expected, T desired, std::memory_order success, std::memory_order failure)
 
bool compare_exchange_strong (T &expected, T desired, std::memory_order order=std::memory_order_seq_cst)
 
fetch_add (T arg, std::memory_order memory_order=std::memory_order_seq_cst)
 

Public Attributes

std::atomic< T > atomic
 

Private Attributes

char padding [CACHE_LINE_SIZE-sizeof(std::atomic< T >)]
 

Constructor & Destructor Documentation

template<class T >
tervel::util::PaddedAtomic< T >::PaddedAtomic ( )
inlineexplicit
template<class T >
tervel::util::PaddedAtomic< T >::PaddedAtomic ( value)
inlineexplicit

Member Function Documentation

template<class T >
bool tervel::util::PaddedAtomic< T >::compare_exchange_strong ( T &  expected,
desired,
std::memory_order  success,
std::memory_order  failure 
)
inline
template<class T >
bool tervel::util::PaddedAtomic< T >::compare_exchange_strong ( T &  expected,
desired,
std::memory_order  order = std::memory_order_seq_cst 
)
inline
template<class T >
bool tervel::util::PaddedAtomic< T >::compare_exchange_weak ( T &  expected,
desired,
std::memory_order  success,
std::memory_order  failure 
)
inline
template<class T >
bool tervel::util::PaddedAtomic< T >::compare_exchange_weak ( T &  expected,
desired,
std::memory_order  order = std::memory_order_seq_cst 
)
inline
template<class T >
T tervel::util::PaddedAtomic< T >::exchange ( value,
std::memory_order  memory_order = std::memory_order_seq_cst 
)
inline
template<class T >
T tervel::util::PaddedAtomic< T >::fetch_add ( arg,
std::memory_order  memory_order = std::memory_order_seq_cst 
)
inline
template<class T >
T tervel::util::PaddedAtomic< T >::load ( std::memory_order  memory_order = std::memory_order_seq_cst)
inline
template<class T >
void tervel::util::PaddedAtomic< T >::store ( value,
std::memory_order  memory_order = std::memory_order_seq_cst 
)
inline

Member Data Documentation

template<class T >
std::atomic<T> tervel::util::PaddedAtomic< T >::atomic
template<class T >
char tervel::util::PaddedAtomic< T >::padding[CACHE_LINE_SIZE-sizeof(std::atomic< T >)]
private

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