Namespaces
Variants

std::barrier<CompletionFunction>:: arrive_and_wait

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
void arrive_and_wait ( ) ;
(seit C++20)

Dekrementiert atomar den erwarteten Zählerstand um 1 und blockiert dann am Synchronisationspunkt für die aktuelle Phase, bis der Phasenabschlussschritt der aktuellen Phase ausgeführt wird. Entspricht wait ( arrive ( ) ) ; .

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

Inhaltsverzeichnis

Parameter

(keine)

Rückgabewert

(keine)

Ausnahmen

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

Hinweise

Wenn der aktuelle erwartete Zählerstand im Aufruf dieser Funktion auf Null dekrementiert wird, wird der Phasenabschluss-Schritt ausgeführt und diese Funktion blockiert nicht.

Wenn der aktuelle erwartete Zählerstand vor dem Aufruf dieser Funktion null ist, ist der anfängliche erwartete Zählerstand für alle nachfolgenden Phasen ebenfalls null, was bedeutet, dass die barrier nicht wiederverwendet werden kann.

Beispiel