libstdc++
|
Classes | |
struct | std::atomic< _Tp > |
atomic 29.4.3, Generic atomic type, primary class template. More... | |
struct | std::atomic< _Tp * > |
Partial specialization for pointer types. More... | |
struct | std::atomic< bool > |
Explicit specialization for bool. More... | |
struct | std::atomic< char > |
Explicit specialization for char. More... | |
struct | std::atomic< char16_t > |
Explicit specialization for char16_t. More... | |
struct | std::atomic< char32_t > |
Explicit specialization for char32_t. More... | |
struct | std::atomic< int > |
Explicit specialization for int. More... | |
struct | std::atomic< long > |
Explicit specialization for long. More... | |
struct | std::atomic< long long > |
Explicit specialization for long long. More... | |
struct | std::atomic< short > |
Explicit specialization for short. More... | |
struct | std::atomic< signed char > |
Explicit specialization for signed char. More... | |
struct | std::atomic< unsigned char > |
Explicit specialization for unsigned char. More... | |
struct | std::atomic< unsigned int > |
Explicit specialization for unsigned int. More... | |
struct | std::atomic< unsigned long > |
Explicit specialization for unsigned long. More... | |
struct | std::atomic< unsigned long long > |
Explicit specialization for unsigned long long. More... | |
struct | std::atomic< unsigned short > |
Explicit specialization for unsigned short. More... | |
struct | std::atomic< void * > |
Explicit specialization for void*. More... | |
struct | std::atomic< wchar_t > |
Explicit specialization for wchar_t. More... |
Macros | |
#define | _ATOMIC_CMPEXCHNG_(__a, __e, __m, __x) |
#define | _ATOMIC_LOAD_(__a, __x) |
#define | _ATOMIC_MODIFY_(__a, __o, __m, __x) |
#define | _ATOMIC_STORE_(__a, __m, __x) |
#define | _GLIBCXX_ATOMIC_NAMESPACE |
#define | _GLIBCXX_ATOMIC_PROPERTY |
#define | ATOMIC_ADDRESS_LOCK_FREE |
#define | ATOMIC_FLAG_INIT |
#define | ATOMIC_INTEGRAL_LOCK_FREE |
Typedefs | |
typedef struct std::__atomic_flag_base | std::__atomic_flag_base |
typedef atomic_short | std::atomic_int_fast16_t |
typedef atomic_int | std::atomic_int_fast32_t |
typedef atomic_llong | std::atomic_int_fast64_t |
typedef atomic_schar | std::atomic_int_fast8_t |
typedef atomic_short | std::atomic_int_least16_t |
typedef atomic_int | std::atomic_int_least32_t |
typedef atomic_llong | std::atomic_int_least64_t |
typedef atomic_schar | std::atomic_int_least8_t |
typedef atomic_llong | std::atomic_intmax_t |
typedef atomic_long | std::atomic_intptr_t |
typedef atomic_long | std::atomic_ptrdiff_t |
typedef atomic_ulong | std::atomic_size_t |
typedef atomic_long | std::atomic_ssize_t |
typedef atomic_ushort | std::atomic_uint_fast16_t |
typedef atomic_uint | std::atomic_uint_fast32_t |
typedef atomic_ullong | std::atomic_uint_fast64_t |
typedef atomic_uchar | std::atomic_uint_fast8_t |
typedef atomic_ushort | std::atomic_uint_least16_t |
typedef atomic_uint | std::atomic_uint_least32_t |
typedef atomic_ullong | std::atomic_uint_least64_t |
typedef atomic_uchar | std::atomic_uint_least8_t |
typedef atomic_ullong | std::atomic_uintmax_t |
typedef atomic_ulong | std::atomic_uintptr_t |
typedef enum std::memory_order | std::memory_order |
Enumerations | |
enum | std::memory_order { memory_order_relaxed, memory_order_consume, memory_order_acquire, memory_order_release, memory_order_acq_rel, memory_order_seq_cst } |
Functions | |
volatile __atomic_flag_base * | std::__atomic_flag_for_address (const volatile void *__z) __attribute__((const )) |
void | std::__atomic_flag_wait_explicit (volatile __atomic_flag_base *, memory_order) |
memory_order | std::__calculate_memory_order (memory_order __m) |
bool | std::atomic_compare_exchange_strong (volatile atomic_address *__a, void **__v1, void *__v2) |
bool | std::atomic_compare_exchange_strong (volatile atomic_bool *__a, bool *__i1, bool __i2) |
template<typename _ITp > | |
bool | std::atomic_compare_exchange_strong (volatile __atomic_base< _ITp > *__a, _ITp *__i1, _ITp __i2) |
bool | std::atomic_compare_exchange_strong_explicit (volatile atomic_address *__a, void **__v1, void *__v2, memory_order __m1, memory_order __m2) |
bool | std::atomic_compare_exchange_strong_explicit (volatile atomic_bool *__a, bool *__i1, bool __i2, memory_order __m1, memory_order __m2) |
template<typename _ITp > | |
bool | std::atomic_compare_exchange_strong_explicit (volatile __atomic_base< _ITp > *__a, _ITp *__i1, _ITp __i2, memory_order __m1, memory_order __m2) |
bool | std::atomic_compare_exchange_weak (volatile atomic_address *__a, void **__v1, void *__v2) |
bool | std::atomic_compare_exchange_weak (volatile atomic_bool *__a, bool *__i1, bool __i2) |
template<typename _ITp > | |
bool | std::atomic_compare_exchange_weak (volatile __atomic_base< _ITp > *__a, _ITp *__i1, _ITp __i2) |
bool | std::atomic_compare_exchange_weak_explicit (volatile atomic_address *__a, void **__v1, void *__v2, memory_order __m1, memory_order __m2) |
bool | std::atomic_compare_exchange_weak_explicit (volatile atomic_bool *__a, bool *__i1, bool __i2, memory_order __m1, memory_order __m2) |
template<typename _ITp > | |
bool | std::atomic_compare_exchange_weak_explicit (volatile __atomic_base< _ITp > *__a, _ITp *__i1, _ITp __i2, memory_order __m1, memory_order __m2) |
void * | std::atomic_exchange (volatile atomic_address *__a, void *__v) |
bool | std::atomic_exchange (volatile atomic_bool *__a, bool __i) |
template<typename _ITp > | |
_ITp | std::atomic_exchange (volatile __atomic_base< _ITp > *__a, _ITp __i) |
void * | std::atomic_exchange_explicit (volatile atomic_address *__a, void *__v, memory_order __m) |
bool | std::atomic_exchange_explicit (volatile atomic_bool *__a, bool __i, memory_order __m) |
template<typename _ITp > | |
_ITp | std::atomic_exchange_explicit (volatile __atomic_base< _ITp > *__a, _ITp __i, memory_order __m) |
void * | std::atomic_fetch_add (volatile atomic_address *__a, ptrdiff_t __d) |
template<typename _ITp > | |
_ITp | std::atomic_fetch_add (volatile __atomic_base< _ITp > *__a, _ITp __i) |
void * | std::atomic_fetch_add_explicit (volatile atomic_address *__a, ptrdiff_t __d, memory_order __m) |
template<typename _ITp > | |
_ITp | std::atomic_fetch_add_explicit (volatile __atomic_base< _ITp > *__a, _ITp __i, memory_order __m) |
template<typename _ITp > | |
_ITp | std::atomic_fetch_and (volatile __atomic_base< _ITp > *__a, _ITp __i) |
template<typename _ITp > | |
_ITp | std::atomic_fetch_and_explicit (volatile __atomic_base< _ITp > *__a, _ITp __i, memory_order __m) |
template<typename _ITp > | |
_ITp | std::atomic_fetch_or (volatile __atomic_base< _ITp > *__a, _ITp __i) |
template<typename _ITp > | |
_ITp | std::atomic_fetch_or_explicit (volatile __atomic_base< _ITp > *__a, _ITp __i, memory_order __m) |
void * | std::atomic_fetch_sub (volatile atomic_address *__a, ptrdiff_t __d) |
template<typename _ITp > | |
_ITp | std::atomic_fetch_sub (volatile __atomic_base< _ITp > *__a, _ITp __i) |
void * | std::atomic_fetch_sub_explicit (volatile atomic_address *__a, ptrdiff_t __d, memory_order __m) |
template<typename _ITp > | |
_ITp | std::atomic_fetch_sub_explicit (volatile __atomic_base< _ITp > *__a, _ITp __i, memory_order __m) |
template<typename _ITp > | |
_ITp | std::atomic_fetch_xor (volatile __atomic_base< _ITp > *__a, _ITp __i) |
template<typename _ITp > | |
_ITp | std::atomic_fetch_xor_explicit (volatile __atomic_base< _ITp > *__a, _ITp __i, memory_order __m) |
void | std::atomic_flag_clear (volatile __atomic_flag_base *__a) |
void | std::atomic_flag_clear_explicit (volatile __atomic_flag_base *, memory_order) |
void | std::atomic_flag_clear_explicit (volatile atomic_flag *__a, memory_order __m) |
bool | std::atomic_flag_test_and_set (volatile __atomic_flag_base *__a) |
bool | std::atomic_flag_test_and_set_explicit (volatile __atomic_flag_base *, memory_order) |
bool | std::atomic_flag_test_and_set_explicit (volatile atomic_flag *__a, memory_order __m) |
bool | std::atomic_is_lock_free (const volatile atomic_address *__a) |
bool | std::atomic_is_lock_free (const volatile atomic_bool *__a) |
template<typename _ITp > | |
bool | std::atomic_is_lock_free (const volatile __atomic_base< _ITp > *__a) |
void * | std::atomic_load (const volatile atomic_address *__a) |
bool | std::atomic_load (const volatile atomic_bool *__a) |
template<typename _ITp > | |
_ITp | std::atomic_load (const volatile __atomic_base< _ITp > *__a) |
void * | std::atomic_load_explicit (const volatile atomic_address *__a, memory_order __m) |
bool | std::atomic_load_explicit (const volatile atomic_bool *__a, memory_order __m) |
template<typename _ITp > | |
_ITp | std::atomic_load_explicit (const volatile __atomic_base< _ITp > *__a, memory_order __m) |
void | std::atomic_store (volatile atomic_address *__a, void *__v) |
void | std::atomic_store (volatile atomic_bool *__a, bool __i) |
template<typename _ITp > | |
void | std::atomic_store (volatile __atomic_base< _ITp > *__a, _ITp __i) |
void | std::atomic_store_explicit (volatile atomic_address *__a, void *__v, memory_order __m) |
void | std::atomic_store_explicit (volatile atomic_bool *__a, bool __i, memory_order __m) |
template<typename _ITp > | |
void | std::atomic_store_explicit (volatile __atomic_base< _ITp > *__a, _ITp __i, memory_order __m) |
bool | std::atomic< _Tp * >::compare_exchange_strong (_Tp *&, _Tp *, memory_order, memory_order) volatile |
bool | std::atomic< _Tp * >::compare_exchange_strong (_Tp *&, _Tp *, memory_order=memory_order_seq_cst) volatile |
bool | std::atomic< _Tp * >::compare_exchange_weak (_Tp *&, _Tp *, memory_order, memory_order) volatile |
bool | std::atomic< _Tp * >::compare_exchange_weak (_Tp *&, _Tp *, memory_order=memory_order_seq_cst) volatile |
_Tp * | std::atomic< _Tp * >::exchange (_Tp *, memory_order=memory_order_seq_cst) volatile |
_Tp * | std::atomic< _Tp * >::fetch_add (ptrdiff_t, memory_order=memory_order_seq_cst) volatile |
_Tp * | std::atomic< _Tp * >::fetch_sub (ptrdiff_t, memory_order=memory_order_seq_cst) volatile |
template<typename _Tp > | |
_Tp | std::kill_dependency (_Tp __y) |
_Tp * | std::atomic< _Tp * >::load (memory_order=memory_order_seq_cst) const volatile |
Components for performing atomic operations.
#define _GLIBCXX_ATOMIC_PROPERTY |
29.2 Lock-free Property
Definition at line 74 of file stdatomic.h.
typedef enum std::memory_order std::memory_order |
Enumeration for memory_order.
enum std::memory_order |
Enumeration for memory_order.
Definition at line 47 of file stdatomic.h.
|
inline |
kill_dependency
Definition at line 61 of file cstdatomic.