Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
Base class that provides basic functionality for atomic<T> without fetch_and_add. More...
#include <atomic.h>
Classes | |
union | converter |
Union type used to convert type T to underlying integral type. More... | |
union | ptr_converter |
union | ptr_converter< value_t * > |
Public Types | |
typedef T | value_type |
Public Member Functions | |
atomic_impl ()=default | |
constexpr | atomic_impl (value_type value) |
template<memory_semantics M> | |
value_type | fetch_and_store (value_type value) |
value_type | fetch_and_store (value_type value) |
template<memory_semantics M> | |
value_type | compare_and_swap (value_type value, value_type comparand) |
value_type | compare_and_swap (value_type value, value_type comparand) |
operator value_type () const volatile | |
template<memory_semantics M> | |
value_type | load () const |
value_type | load () const |
template<memory_semantics M> | |
void | store (value_type value) |
void | store (value_type value) |
Protected Member Functions | |
value_type | store_with_release (value_type rhs) |
Protected Attributes | |
aligned_storage< T, sizeof(T)> | my_storage |
Static Private Member Functions | |
template<typename value_t > | |
static converter< value_t >::bits_type | to_bits (value_t value) |
template<typename value_t > | |
static value_t | to_value (typename converter< value_t >::bits_type bits) |
template<typename value_t > | |
static converter< value_t >::bits_type & | to_bits_ref (value_t &value) |
Base class that provides basic functionality for atomic<T> without fetch_and_add.
Works for any type T that has the same size as an integral type, has a trivial constructor/destructor, and can be copied/compared by memcpy/memcmp.
typedef T tbb::internal::atomic_impl< T >::value_type |
|
default |
|
inlineconstexpr |
Definition at line 285 of file atomic.h.
|
inline |
Definition at line 299 of file atomic.h.
References tbb::internal::atomic_impl< T >::my_storage, tbb::internal::atomic_impl< T >::to_bits(), and value.
|
inline |
|
inline |
Definition at line 288 of file atomic.h.
References tbb::internal::atomic_impl< T >::my_storage, tbb::internal::atomic_impl< T >::to_bits(), and value.
|
inline |
|
inline |
Definition at line 316 of file atomic.h.
References tbb::internal::atomic_impl< T >::my_storage, and tbb::internal::atomic_impl< T >::to_bits_ref().
|
inline |
|
inline |
Definition at line 309 of file atomic.h.
References tbb::internal::__TBB_load_with_acquire(), tbb::internal::atomic_impl< T >::my_storage, and tbb::internal::atomic_impl< T >::to_bits_ref().
|
inline |
Definition at line 327 of file atomic.h.
References tbb::internal::atomic_impl< T >::my_storage, tbb::store(), tbb::internal::atomic_impl< T >::to_bits(), tbb::internal::atomic_impl< T >::to_bits_ref(), and value.
|
inline |
|
inlineprotected |
Definition at line 336 of file atomic.h.
References tbb::internal::__TBB_store_with_release(), tbb::internal::atomic_impl< T >::my_storage, tbb::internal::atomic_impl< T >::to_bits(), and tbb::internal::atomic_impl< T >::to_bits_ref().
|
inlinestaticprivate |
Definition at line 246 of file atomic.h.
References tbb::internal::atomic_impl< T >::converter< value_type >::bits, and value.
Referenced by tbb::internal::atomic_impl< T >::compare_and_swap(), tbb::internal::atomic_impl< T >::fetch_and_store(), tbb::internal::atomic_impl< T >::store(), and tbb::internal::atomic_impl< T >::store_with_release().
|
inlinestaticprivate |
Definition at line 269 of file atomic.h.
References tbb::internal::atomic_impl< T >::ptr_converter< value_t * >::bits, and value.
Referenced by tbb::internal::atomic_impl< T >::load(), tbb::internal::atomic_impl< T >::operator value_type(), tbb::internal::atomic_impl< T >::store(), and tbb::internal::atomic_impl< T >::store_with_release().
|
inlinestaticprivate |
Definition at line 250 of file atomic.h.
References tbb::internal::atomic_impl< T >::converter< value_type >::bits, and tbb::internal::atomic_impl< T >::converter< value_type >::value.
|
protected |
Definition at line 232 of file atomic.h.
Referenced by tbb::internal::atomic_impl< T >::compare_and_swap(), tbb::internal::atomic_impl< T >::fetch_and_store(), tbb::internal::atomic_impl< T >::load(), tbb::internal::atomic_impl< T >::operator value_type(), tbb::internal::atomic_impl< T >::store(), and tbb::internal::atomic_impl< T >::store_with_release().