Module libc/stdatomic

libc/stdatomic

C11 <stdatomic.h> — atomic operations and types.

Types

atomic_bool type-alias
atomic_bool
atomic_char type-alias
atomic_char
atomic_schar type-alias
atomic_schar
atomic_uchar type-alias
atomic_uchar
atomic_short type-alias
atomic_short
atomic_ushort type-alias
atomic_ushort
atomic_int type-alias
atomic_int
atomic_uint type-alias
atomic_uint
atomic_long type-alias
atomic_long
atomic_ulong type-alias
atomic_ulong
atomic_llong type-alias
atomic_llong
atomic_ullong type-alias
atomic_ullong
atomic_char16_t type-alias
atomic_char16_t
atomic_char32_t type-alias
atomic_char32_t
atomic_wchar_t type-alias
atomic_wchar_t
atomic_int_least8_t type-alias
atomic_int_least8_t
atomic_uint_least8_t
atomic_int_least16_t
atomic_uint_least16_t
atomic_int_least32_t
atomic_uint_least32_t
atomic_int_least64_t
atomic_uint_least64_t
atomic_int_fast8_t type-alias
atomic_int_fast8_t
atomic_uint_fast8_t type-alias
atomic_uint_fast8_t
atomic_int_fast16_t type-alias
atomic_int_fast16_t
atomic_uint_fast16_t
atomic_int_fast32_t type-alias
atomic_int_fast32_t
atomic_uint_fast32_t
atomic_int_fast64_t type-alias
atomic_int_fast64_t
atomic_uint_fast64_t
atomic_intptr_t type-alias
atomic_intptr_t
atomic_uintptr_t type-alias
atomic_uintptr_t
atomic_size_t type-alias
atomic_size_t
atomic_ptrdiff_t type-alias
atomic_ptrdiff_t
atomic_intmax_t type-alias
atomic_intmax_t
atomic_uintmax_t type-alias
atomic_uintmax_t
memory_order type-alias
memory_order
atomic_flag type-alias
atomic_flag

Functions

atomic_init function
fn(obj : *(atomic_bool), value : bool) -> unit

Parameters

NameTypeNotes
obj*(atomic_bool)
valuebool

Returns: unit

atomic_load function
fn(obj : *(atomic_bool)) -> bool

Parameters

NameTypeNotes
obj*(atomic_bool)

Returns: bool

fn(obj : *(atomic_bool), order : memory_order) -> bool

Parameters

NameTypeNotes
obj*(atomic_bool)
ordermemory_order

Returns: bool

atomic_store function
fn(obj : *(atomic_bool), desired : bool) -> unit

Parameters

NameTypeNotes
obj*(atomic_bool)
desiredbool

Returns: unit

fn(obj : *(atomic_bool), desired : bool, order : memory_order) -> unit

Parameters

NameTypeNotes
obj*(atomic_bool)
desiredbool
ordermemory_order

Returns: unit

atomic_exchange function
fn(obj : *(atomic_bool), desired : bool) -> bool

Parameters

NameTypeNotes
obj*(atomic_bool)
desiredbool

Returns: bool

fn(obj : *(atomic_bool), desired : bool, order : memory_order) -> bool

Parameters

NameTypeNotes
obj*(atomic_bool)
desiredbool
ordermemory_order

Returns: bool

fn(obj : *(atomic_bool), expected : *(bool), desired : bool) -> bool

Parameters

NameTypeNotes
obj*(atomic_bool)
expected*(bool)
desiredbool

Returns: bool

fn(obj : *(atomic_bool), expected : *(bool), desired : bool, success : memory_order, failure : memory_order) -> bool

Parameters

NameTypeNotes
obj*(atomic_bool)
expected*(bool)
desiredbool
successmemory_order
failurememory_order

Returns: bool

fn(obj : *(atomic_bool), expected : *(bool), desired : bool) -> bool

Parameters

NameTypeNotes
obj*(atomic_bool)
expected*(bool)
desiredbool

Returns: bool

fn(obj : *(atomic_bool), expected : *(bool), desired : bool, success : memory_order, failure : memory_order) -> bool

Parameters

NameTypeNotes
obj*(atomic_bool)
expected*(bool)
desiredbool
successmemory_order
failurememory_order

Returns: bool

atomic_fetch_add function
fn(obj : *(atomic_int), arg : int) -> int

Parameters

NameTypeNotes
obj*(atomic_int)
argint

Returns: int

fn(obj : *(atomic_int), arg : int, order : memory_order) -> int

Parameters

NameTypeNotes
obj*(atomic_int)
argint
ordermemory_order

Returns: int

atomic_fetch_sub function
fn(obj : *(atomic_int), arg : int) -> int

Parameters

NameTypeNotes
obj*(atomic_int)
argint

Returns: int

fn(obj : *(atomic_int), arg : int, order : memory_order) -> int

Parameters

NameTypeNotes
obj*(atomic_int)
argint
ordermemory_order

Returns: int

atomic_fetch_or function
fn(obj : *(atomic_int), arg : int) -> int

Parameters

NameTypeNotes
obj*(atomic_int)
argint

Returns: int

fn(obj : *(atomic_int), arg : int, order : memory_order) -> int

Parameters

NameTypeNotes
obj*(atomic_int)
argint
ordermemory_order

Returns: int

atomic_fetch_xor function
fn(obj : *(atomic_int), arg : int) -> int

Parameters

NameTypeNotes
obj*(atomic_int)
argint

Returns: int

fn(obj : *(atomic_int), arg : int, order : memory_order) -> int

Parameters

NameTypeNotes
obj*(atomic_int)
argint
ordermemory_order

Returns: int

atomic_fetch_and function
fn(obj : *(atomic_int), arg : int) -> int

Parameters

NameTypeNotes
obj*(atomic_int)
argint

Returns: int

fn(obj : *(atomic_int), arg : int, order : memory_order) -> int

Parameters

NameTypeNotes
obj*(atomic_int)
argint
ordermemory_order

Returns: int

atomic_load_ptr function
fn(obj : *(*(void))) -> *(void)

Parameters

NameTypeNotes
obj*(*(void))

Returns: *(void)

atomic_store_ptr function
fn(obj : *(*(void)), desired : *(void)) -> unit

Parameters

NameTypeNotes
obj*(*(void))
desired*(void)

Returns: unit

fn(obj : *(*(void)), desired : *(void)) -> *(void)

Parameters

NameTypeNotes
obj*(*(void))
desired*(void)

Returns: *(void)

fn(obj : *(*(void)), expected : *(*(void)), desired : *(void)) -> bool

Parameters

NameTypeNotes
obj*(*(void))
expected*(*(void))
desired*(void)

Returns: bool

fn(obj : *(*(void)), expected : *(*(void)), desired : *(void)) -> bool

Parameters

NameTypeNotes
obj*(*(void))
expected*(*(void))
desired*(void)

Returns: bool

fn(obj : *(atomic_flag)) -> bool

Parameters

NameTypeNotes
obj*(atomic_flag)

Returns: bool

fn(obj : *(atomic_flag), order : memory_order) -> bool

Parameters

NameTypeNotes
obj*(atomic_flag)
ordermemory_order

Returns: bool

fn(obj : *(atomic_flag)) -> unit

Parameters

NameTypeNotes
obj*(atomic_flag)

Returns: unit

fn(obj : *(atomic_flag), order : memory_order) -> unit

Parameters

NameTypeNotes
obj*(atomic_flag)
ordermemory_order

Returns: unit

fn(order : memory_order) -> unit

Parameters

NameTypeNotes
ordermemory_order

Returns: unit

fn(order : memory_order) -> unit

Parameters

NameTypeNotes
ordermemory_order

Returns: unit

fn(obj : *(atomic_bool)) -> bool

Parameters

NameTypeNotes
obj*(atomic_bool)

Returns: bool

kill_dependency function
fn(y : i32) -> i32

Parameters

NameTypeNotes
yi32

Returns: i32

Constants

memory_order_relaxed constant memory_order

Value: memory_order_relaxed

memory_order_consume constant memory_order

Value: memory_order_consume

memory_order_acquire constant memory_order

Value: memory_order_acquire

memory_order_release constant memory_order

Value: memory_order_release

memory_order_acq_rel constant memory_order

Value: memory_order_acq_rel

memory_order_seq_cst constant memory_order

Value: memory_order_seq_cst

ATOMIC_BOOL_LOCK_FREE constant i32

Value: ATOMIC_BOOL_LOCK_FREE

ATOMIC_CHAR_LOCK_FREE constant i32

Value: ATOMIC_CHAR_LOCK_FREE

Value: ATOMIC_CHAR16_T_LOCK_FREE

Value: ATOMIC_CHAR32_T_LOCK_FREE

Value: ATOMIC_WCHAR_T_LOCK_FREE

ATOMIC_SHORT_LOCK_FREE constant i32

Value: ATOMIC_SHORT_LOCK_FREE

ATOMIC_INT_LOCK_FREE constant i32

Value: ATOMIC_INT_LOCK_FREE

ATOMIC_LONG_LOCK_FREE constant i32

Value: ATOMIC_LONG_LOCK_FREE

ATOMIC_LLONG_LOCK_FREE constant i32

Value: ATOMIC_LLONG_LOCK_FREE

Value: ATOMIC_POINTER_LOCK_FREE