Module libc/stdatomic
C11 <stdatomic.h> — atomic operations and types.
Stability
unstable — a raw C binding, not a Yo design. std/sync/atomic is the
public surface (std/sync/once also reaches in for its state flag), and
what is bound here is shaped by C rather than chosen: the C11 atomic
operations are GENERIC MACROS, and a c_include binding is keyed by C
symbol name, so each macro can have exactly one Yo binding — which is
why atomic_fetch_*_explicit appears for i32 only and every other
type runs a compare-exchange loop in std/sync/atomic instead
(docs/en-US/THREAD_SAFETY.md). The memory-order enumerators are bound as
plain ints. Freezing would mean freezing that per-type binding
asymmetry, which is a workaround, not a design.
Types
Functions
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_bool) | |
value | bool |
Returns: unit
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_bool) |
Returns: bool
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_bool) | |
order | memory_order |
Returns: bool
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_bool) | |
desired | bool |
Returns: unit
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_bool) | |
desired | bool | |
order | memory_order |
Returns: unit
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_bool) | |
desired | bool |
Returns: bool
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_bool) | |
desired | bool | |
order | memory_order |
Returns: bool
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_bool) | |
expected | *(bool) | |
desired | bool |
Returns: bool
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_bool) | |
expected | *(bool) | |
desired | bool | |
success | memory_order | |
failure | memory_order |
Returns: bool
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_bool) | |
expected | *(bool) | |
desired | bool |
Returns: bool
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_bool) | |
expected | *(bool) | |
desired | bool | |
success | memory_order | |
failure | memory_order |
Returns: bool
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_int) | |
arg | int |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_int) | |
arg | int | |
order | memory_order |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_int) | |
arg | int |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_int) | |
arg | int | |
order | memory_order |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_int) | |
arg | int |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_int) | |
arg | int | |
order | memory_order |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_int) | |
arg | int |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_int) | |
arg | int | |
order | memory_order |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_int) | |
arg | int |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_int) | |
arg | int | |
order | memory_order |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(*(void)) |
Returns: *(void)
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(*(void)) | |
desired | *(void) |
Returns: unit
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(*(void)) | |
desired | *(void) |
Returns: *(void)
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(*(void)) | |
expected | *(*(void)) | |
desired | *(void) |
Returns: bool
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(*(void)) | |
expected | *(*(void)) | |
desired | *(void) |
Returns: bool
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_flag) |
Returns: bool
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_flag) | |
order | memory_order |
Returns: bool
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_flag) |
Returns: unit
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_flag) | |
order | memory_order |
Returns: unit
Parameters
| Name | Type | Notes |
|---|---|---|
order | memory_order |
Returns: unit
Parameters
| Name | Type | Notes |
|---|---|---|
order | memory_order |
Returns: unit
Parameters
| Name | Type | Notes |
|---|---|---|
obj | *(atomic_bool) |
Returns: bool
Parameters
| Name | Type | Notes |
|---|---|---|
y | i32 |
Returns: i32
Constants
Value: <unknown: memory_order>
Value: <unknown: memory_order>
Value: <unknown: memory_order>
Value: <unknown: memory_order>
Value: <unknown: memory_order>
Value: <unknown: memory_order>
Value: <unknown: i32>
Value: <unknown: i32>
Value: <unknown: i32>
Value: <unknown: i32>
Value: <unknown: i32>
Value: <unknown: i32>
Value: <unknown: i32>
Value: <unknown: i32>
Value: <unknown: i32>
Value: <unknown: i32>