Namensräume
Varianten
Aktionen

atomic_flag_test_and_set, atomic_flag_test_and_set_explicit

Von cppreference.com
< c‎ | atomar
Definiert im 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 von obj zeigenden atomic_flag 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 ein volatiles atomares Flag, um Adressen sowohl von nicht-volatilen als auch von volatilen (z. B. speicherprogrammierter E/A) atomaren Flags zu akzeptieren.

Inhalt

[bearbeiten] Parameter

obj - Zeiger auf das zu modifizierende atomare Flag-Objekt
Reihenfolge - Die Speicher-Synchronisierungsordnung für diese Operation: alle Werte sind zulässig

[bearbeiten] Rückgabewert

Der vorherige Wert des von obj zeigenden atomaren Flags.

[bearbeiten] Referenzen

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

[bearbeiten] Siehe auch

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