atomic_load, atomic_load_explicit
|
Défini dans l'en-tête
<stdatomic.h>
|
||
|
C atomic_load
(
const
volatile
A
*
obj
)
;
|
(1) | (depuis C11) |
|
C atomic_load_explicit
(
const
volatile
A
*
obj,
memory_order
order
)
;
|
(2) | (depuis C11) |
Charge atomiquement et retourne la valeur actuelle de la variable atomique pointée par
obj
. L'opération est une opération de lecture 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'une des valeurs suivantes :
memory_order_relaxed
,
memory_order_consume
,
memory_order_acquire
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 une liaison externe. Si une définition de macro est supprimée pour accéder à une fonction réelle (par exemple entre parenthèses comme ( atomic_load ) ( ... ) ), ou si un programme définit un identifiant externe avec 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 à accéder |
| order | - | l'ordre de synchronisation de la mémoire pour cette opération |
Valeur de retour
La valeur actuelle de la variable atomique pointée par
obj
.
Références
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.17.7.2 Les fonctions génériques atomic_load (p: 206)
- Norme C11 (ISO/CEI 9899:2011) :
-
- 7.17.7.2 Les fonctions génériques atomic_load (p: 282)
Voir aussi
|
stocke une valeur dans un objet atomique
(fonction) |
|
|
Documentation C++
pour
atomic_load
,
atomic_load_explicit
|
|