Namensräume
Varianten
Aktionen

std::barrier<CompletionFunction>::arrive_and_drop

Von cppreference.com
< cpp‎ | thread‎ | barrier
 
 
Bibliothek für nebenläufige Programmierung
Threads
(C++11)
(C++20)
this_thread Namespace
(C++11)
(C++11)
(C++11)
Kooperatives Beenden
Gegenseitiger Ausschluss
(C++11)
Allgemeines Sperrungsmanagement
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Bedingungsvariablen
(C++11)
Semaphoren
Latches und Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
Sichere Wiederherstellung
(C++26)
Hazard Pointer
Atomare Typen
(C++11)
(C++20)
Initialisierung von atomaren Typen
(C++11)(veraltet in C++20)
(C++11)(veraltet in C++20)
Speicherordnung
(C++11)(deprecated in C++26)
Freie Funktionen für atomare Operationen
Freie Funktionen für atomare Flags
 
 
void arrive_and_drop();
(seit C++20)

Verringert die anfänglich erwartete Anzahl für alle nachfolgenden Phasen um eins und verringert dann die erwartete Anzahl für die aktuelle Phase um eins.

Dieser Funktionsaufruf wird atomar ausgeführt. Der Aufruf dieser Funktion findet stark vor dem Beginn des Phasenabschluss-Schritts für die aktuelle Phase statt.

Das Verhalten ist undefiniert, wenn die erwartete Anzahl für die aktuelle Phase null ist.

Inhalt

[bearbeiten] Parameter

(keine)

[bearbeiten] Rückgabewert

(keine)

[bearbeiten] Ausnahmen

Wirft std::system_error mit einem für Mutex-Typen zulässigen Fehlercode im Fehlerfall.

[bearbeiten] Hinweise

Diese Funktion kann dazu führen, dass der Abschluss-Schritt für die aktuelle Phase beginnt.

Wenn die aktuelle erwartete Anzahl vor dem Aufruf dieser Funktion null ist, ist auch die anfänglich erwartete Anzahl für alle nachfolgenden Phasen null, was bedeutet, dass die barrier nicht wiederverwendet werden kann.

[bearbeiten] Beispiel