Namespaces
Variants

atomic_store, atomic_store_explicit

From cppreference.net
Definiert in Header <stdatomic.h>
void atomic_store ( volatile A * obj , C desired ) ;
(1) (seit C11)
void atomic_store_explicit ( volatile A * obj, C desired, memory_order order ) ;
(2) (seit C11)

Ersetzt atomar den Wert der atomaren Variable, auf die obj zeigt, mit desired . Der Vorgang ist ein atomarer Schreibvorgang.

Die erste Version ordnet Speicherzugriffe gemäß memory_order_seq_cst , die zweite Version ordnet Speicherzugriffe gemäß order . order muss einer der folgenden Werte sein: memory_order_relaxed , memory_order_release oder memory_order_seq_cst . Andernfalls ist das Verhalten undefiniert.

Dies ist eine generische Funktion , die für alle atomaren Objekttypen A definiert ist. Das Argument ist ein Zeiger auf einen flüchtigen atomaren Typ, um Adressen sowohl von nicht-flüchtigen als auch flüchtigen (z.B. speichergemappten E/A) atomaren Objekten zu akzeptieren, und die flüchtige Semantik wird beibehalten, wenn diese Operation auf flüchtige atomare Objekte angewendet wird. C ist der nicht-atomare Typ, der A entspricht.

Es ist nicht spezifiziert, ob der Name einer generischen Funktion ein Makro oder ein mit externer Bindung deklarierter Bezeichner ist. Wenn eine Makrodefinition unterdrückt wird, um auf eine tatsächliche Funktion zuzugreifen (z.B. durch Klammerung wie ( atomic_store ) ( ... ) ), oder ein Programm einen externen Bezeichner mit dem Namen einer generischen Funktion definiert, ist das Verhalten undefiniert.

Inhaltsverzeichnis

Parameter

obj - Zeiger auf das zu modifizierende atomare Objekt
order - die Speichersynchronisierungsreihenfolge für diesen Vorgang

Rückgabewert

(keine)

Referenzen

  • C17-Standard (ISO/IEC 9899:2018):
  • 7.17.7.1 Die atomic_store-Generic-Funktionen (S: 206)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.17.7.1 Die atomic_store-Generic-Funktionen (S: 282)

Siehe auch

liest einen Wert aus einem atomaren Objekt
(Funktion)
C++-Dokumentation für atomic_store , atomic_store_explicit