atomic_load, atomic_load_explicit
|
Definido en el encabezado
<stdatomic.h>
|
||
|
C atomic_load
(
const
volatile
A
*
obj
)
;
|
(1) | (desde C11) |
|
C atomic_load_explicit
(
const
volatile
A
*
obj,
memory_order
order
)
;
|
(2) | (desde C11) |
Carga atómicamente y devuelve el valor actual de la variable atómica apuntada por
obj
. La operación es una operación de lectura atómica.
La primera versión ordena los accesos a memoria de acuerdo con
memory_order_seq_cst
, la segunda versión ordena los accesos a memoria de acuerdo con
order
.
order
debe ser uno de
memory_order_relaxed
,
memory_order_consume
,
memory_order_acquire
o
memory_order_seq_cst
. De lo contrario, el comportamiento es indefinido.
Esta es una
función genérica
definida para todos los
tipos de objetos atómicos
A
. El argumento es un puntero a un tipo atómico volátil para aceptar direcciones de objetos atómicos tanto no volátiles como
volátiles
(por ejemplo, E/S mapeadas en memoria), y se preserva la semántica volátil cuando se aplica esta operación a objetos atómicos volátiles.
C
es el tipo no atómico correspondiente a
A
.
No está especificado si el nombre de una función genérica es una macro o un identificador declarado con vinculación externa. Si se suprime una definición de macro para acceder a una función real (por ejemplo, entre paréntesis como ( atomic_load ) ( ... ) ), o un programa define un identificador externo con el nombre de una función genérica, el comportamiento no está definido.
Contenidos |
Parámetros
| obj | - | puntero al objeto atómico al que acceder |
| order | - | el orden de sincronización de memoria para esta operación |
Valor de retorno
El valor actual de la variable atómica apuntada por
obj
.
Referencias
- Estándar C17 (ISO/IEC 9899:2018):
-
- 7.17.7.2 Las funciones genéricas atomic_load (p: 206)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 7.17.7.2 Las funciones genéricas atomic_load (p: 282)
Véase también
|
almacena un valor en un objeto atómico
(función) |
|
|
Documentación de C++
para
atomic_load
,
atomic_load_explicit
|
|