Namespaces
Variants

atomic_store, atomic_store_explicit

From cppreference.net
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