Namespaces
Variants

atomic_store, atomic_store_explicit

From cppreference.net
Défini dans l'en-tête <stdatomic.h>
void atomic_store ( volatile A * obj , C desired ) ;
(1) (depuis C11)
void atomic_store_explicit ( volatile A * obj, C desired, memory_order order ) ;
(2) (depuis C11)

Remplace atomiquement la valeur de la variable atomique pointée par obj avec desired . L'opération est une opération d'écriture atomique.

La première version ordonne les accès mémoire selon memory_order_seq_cst , la seconde version ordonne les accès mémoire selon order . order doit être l'un des suivants : memory_order_relaxed , memory_order_release ou memory_order_seq_cst . Sinon, le comportement est indéfini.

Ceci est une fonction générique définie pour tous les types d'objets atomiques A . L'argument est un pointeur vers un type atomique volatile pour accepter les adresses des objets atomiques non volatiles et volatiles (par exemple les E/S mappées en mémoire), et la sémantique volatile est préservée lors de l'application de cette opération aux objets atomiques volatiles. C est le type non atomique correspondant à A .

Il n'est pas spécifié si le nom d'une fonction générique est une macro ou un identifiant déclaré avec liaison externe. Si une définition de macro est supprimée pour accéder à une fonction réelle (par exemple mise entre parenthèses comme ( atomic_store ) ( ... ) ), ou si un programme définit un identifiant externe portant le nom d'une fonction générique, le comportement est indéfini.

Table des matières

Paramètres

obj - pointeur vers l'objet atomique à modifier
order - l'ordre de synchronisation mémoire pour cette opération

Valeur de retour

(aucun)

Références

  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.17.7.1 Les fonctions génériques atomic_store (p: 206)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.17.7.1 Les fonctions génériques atomic_store (p: 282)

Voir aussi

lit une valeur depuis un objet atomique
(fonction)
Documentation C++ pour atomic_store , atomic_store_explicit