atomic_store, atomic_store_explicit
|
Definido en el encabezado
<stdatomic.h>
|
||
|
void
atomic_store
(
volatile
A
*
obj , C desired
)
;
|
(1) | (desde C11) |
|
void
atomic_store_explicit
(
volatile
A
*
obj, C desired,
memory_order
order
)
;
|
(2) | (desde C11) |
Reemplaza atómicamente el valor de la variable atómica apuntada por
obj
con
desired
. La operación es una operación de escritura 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_release
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_store ) ( ... ) ), 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 a modificar |
| order | - | el orden de sincronización de memoria para esta operación |
Valor de retorno
(ninguno)
Referencias
- Estándar C17 (ISO/IEC 9899:2018):
-
- 7.17.7.1 The atomic_store generic functions (p: 206)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 7.17.7.1 The atomic_store generic functions (p: 282)
Véase también
|
lee un valor de un objeto atómico
(función) |
|
|
Documentación de C++
para
atomic_store
,
atomic_store_explicit
|
|