Namespaces
Variants

atomic_flag_test_and_set, atomic_flag_test_and_set_explicit

From cppreference.net
Défini dans l'en-tête <stdatomic.h>
_Bool atomic_flag_test_and_set ( volatile atomic_flag * obj ) ;
(1) (depuis C11)
_Bool atomic_flag_test_and_set_explicit ( volatile atomic_flag * obj, memory_order order ) ;
(2) (depuis C11)

Modifie atomiquement l'état d'un atomic_flag pointé par obj pour le mettre à l'état actif ( true ) et retourne la valeur précédente. La première version ordonne les accès mémoire selon memory_order_seq_cst , la deuxième version ordonne les accès mémoire selon order .

L'argument est un pointeur vers un drapeau atomique volatile pour accepter les adresses à la fois des drapeaux atomiques non volatiles et volatiles (par exemple, les E/S mappées en mémoire).

Table des matières

Paramètres

obj - pointeur vers l'objet drapeau atomique à modifier
order - l'ordre de synchronisation mémoire pour cette opération : toutes les valeurs sont autorisées

Valeur de retour

La valeur précédente détenue par l'indicateur atomique pointé par obj .

Références

  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.17.8.1 Les fonctions atomic_flag_test_and_set (p: 209)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.17.8.1 Les fonctions atomic_flag_test_and_set (p: 285-286)

Voir aussi

définit un atomic_flag à false
(fonction)
Documentation C++ pour atomic_flag_test_and_set , atomic_flag_test_and_set_explicit