Atomic operations library
If the macro cons tant __STDC_NO_ATOMICS__(C11) is dened by the compiler, the header
<stdatomic.h>, the keyword _Atomic, and all of the names lis ted here are not provided.
Types
Dened in header <stdatomic.h>
denes memory ordering cons traints
memory_order(C11) (enum)
lock-free atomic boolean ag
atomic_flag(C11) (struc t)
Macros
Dened in header <stdatomic.h>
ATOMIC_BOOL_LOCK_FREE
ATOMIC_CHAR_LOCK_FREE
ATOMIC_CHAR16_T_LOCK_FREE
ATOMIC_CHAR32_T_LOCK_FREE
ATOMIC_WCHAR_T_LOCK_FREE
indicates that the given atomic type is lock-free
(C11)
(mac ro c onstant)
ATOMIC_SHORT_LOCK_FREE
ATOMIC_INT_LOCK_FREE
ATOMIC_LONG_LOCK_FREE
ATOMIC_LLONG_LOCK_FREE
ATOMIC_POINTER_LOCK_FREE
ATOMIC_FLAG_INIT(C11)
ATOMIC_VAR_INIT(C11)
kill_dependency(C11)
initializes a new atomic_flag
(mac ro c onstant)
initializes a new atomic object
(func tion mac ro)
breaks a dependency chain for memory_order_consume
(func tion mac ro)
Functions
Dened in header <stdatomic.h>
atomic_flag_test_and_set
(C11)
atomic_flag_test_and_set_explicit
atomic_flag_clear
(C11)
atomic_flag_clear_explicit
atomic_init(C11)
atomic_is_lock_free(C11)
s ets an atomic_ag to true and returns the old
value
(func tion)
s ets an atomic_ag to fals e
(func tion)
initializes an exis ting atomic object
(func tion)
indicates whether the atomic object is lock-free
(func tion)
atomic_store
(C11)
atomic_store_explicit
s tores a value in an atomic object
atomic_load
(C11)
atomic_load_explicit
reads a value from an atomic object
atomic_exchange
(C11)
atomic_exchange_explicit
s waps a value with the value of an atomic object
atomic_compare_exchange_strong
atomic_compare_exchange_strong_explicit
(C11)
atomic_compare_exchange_weak
atomic_compare_exchange_weak_explicit
s waps a value with the an atomic object if the old
value is what is expected, otherwis e reads the
old value
atomic_fetch_add
(C11)
atomic_fetch_add_explicit
atomic addition
atomic_fetch_sub
(C11)
atomic_fetch_sub_explicit
atomic s ubtraction
atomic_fetch_or
(C11)
atomic_fetch_or_explicit
atomic logical OR
atomic_fetch_xor
(C11)
atomic_fetch_xor_explicit
atomic logical exclus ive OR
(func tion)
(func tion)
(func tion)
(func tion)
(func tion)
(func tion)
(func tion)
(func tion)
atomic logical AND
(func tion)
atomic_fetch_and
(C11)
atomic_fetch_and_explicit
atomic_thread_fence(C11)
(func tion)
generic memory order-dependent fence
s ynchronization primitive
(func tion)
atomic_signal_fence(C11)
fence between a thread and a s ignal handler
executed in the s ame thread
(func tion)
Types
The s tandard library oers convenience typedefs for the core language atomic types .
Typedef name
Full type name
atomic_bool
_Atomic _Bool
atomic_char
_Atomic char
atomic_schar
_Atomic signed char
atomic_uchar
_Atomic unsigned char
atomic_short
_Atomic short
atomic_ushort
_Atomic unsigned short
atomic_int
_Atomic int
atomic_uint
_Atomic unsigned int
atomic_long
_Atomic long
atomic_ulong
_Atomic unsigned long
atomic_llong
_Atomic long long
atomic_ullong
_Atomic unsigned long long
atomic_char16_t
_Atomic char16_t
atomic_char32_t
_Atomic char32_t
atomic_wchar_t
_Atomic wchar_t
atomic_int_least8_t
_Atomic int_least8_t
atomic_uint_least8_t
_Atomic uint_least8_t
atomic_int_least16_t
_Atomic int_least16_t
atomic_uint_least16_t _Atomic uint_least16_t
atomic_int_least32_t
_Atomic int_least32_t
atomic_uint_least32_t _Atomic uint_least32_t
atomic_int_least64_t
_Atomic int_least64_t
atomic_uint_least64_t _Atomic uint_least64_t
atomic_int_fast8_t
_Atomic int_fast8_t
atomic_uint_fast8_t
_Atomic uint_fast8_t
atomic_int_fast16_t
_Atomic int_fast16_t
atomic_uint_fast16_t
_Atomic uint_fast16_t
atomic_int_fast32_t
_Atomic int_fast32_t
atomic_uint_fast32_t
_Atomic uint_fast32_t
atomic_int_fast64_t
_Atomic int_fast64_t
atomic_uint_fast64_t
_Atomic uint_fast64_t
atomic_intptr_t
_Atomic intptr_t
atomic_uintptr_t
_Atomic uintptr_t
atomic_size_t
_Atomic size_t
atomic_ptrdiff_t
_Atomic ptrdiff_t
atomic_intmax_t
_Atomic intmax_t
atomic_uintmax_t
_Atomic uintmax_t
References
C11 s tandard (ISO/IEC 9899:2011):
7.17 Atomics <s tdatomic.h> (p: 273-286)
7.31.8 Atomics <s tdatomic.h> (p: 455-456)
See also
C++ documentation for Atomic operations library
Retrieved from "http://en.c ppreferenc e.c om/mwiki/index.php?title=c /atomic & oldid=83361"