Namespaces
Variants

atomic_flag_test_and_set, atomic_flag_test_and_set_explicit

From cppreference.net
Definiert in Header <stdatomic.h>
_Bool atomic_flag_test_and_set ( volatile atomic_flag * obj ) ;
(1) (seit C11)
_Bool atomic_flag_test_and_set_explicit ( volatile atomic_flag * obj, memory_order order ) ;
(2) (seit C11)

Ändert atomar den Zustand eines atomic_flag , auf das obj zeigt, auf gesetzt ( true ) und gibt den vorherigen Wert zurück. Die erste Version ordnet Speicherzugriffe gemäß memory_order_seq_cst , die zweite Version ordnet Speicherzugriffe gemäß order .

Das Argument ist ein Zeiger auf eine flüchtige atomare Flagge, um Adressen sowohl von nicht-flüchtigen als auch volatile (z.B. speichergemappte E/A) atomaren Flaggen zu akzeptieren.

Inhaltsverzeichnis

Parameter

obj - Zeiger auf das zu modifizierende atomare Flag-Objekt
order - die Speichersynchronisierungsreihenfolge für diesen Vorgang: alle Werte sind erlaubt

Rückgabewert

Der vorherige Wert, der von der atomaren Flagge gehalten wurde, auf die obj zeigt.

Referenzen

  • C17-Standard (ISO/IEC 9899:2018):
  • 7.17.8.1 Die atomic_flag_test_and_set-Funktionen (S: 209)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.17.8.1 Die atomic_flag_test_and_set-Funktionen (S: 285-286)

Siehe auch

setzt ein atomic_flag auf false
(Funktion)
C++-Dokumentation für atomic_flag_test_and_set , atomic_flag_test_and_set_explicit