std::barrier<CompletionFunction>::arrive_and_wait
| void arrive_and_wait(); |
(seit C++20) | |
Dekrementiert atomar den erwarteten Zähler um 1 und blockiert dann am Synchronisationspunkt für die aktuelle Phase, bis der Phasenabschluss der aktuellen Phase ausgeführt wird. Entspricht wait(arrive());.
Das Verhalten ist undefiniert, wenn der erwartete Zähler 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
Wenn der aktuelle erwartete Zähler durch den Aufruf dieser Funktion auf null dekrementiert wird, wird der Phasenabschluss ausgeführt und diese Funktion blockiert nicht.
Wenn der aktuelle erwartete Zähler vor dem Aufruf dieser Funktion null ist, ist der anfängliche erwartete Zähler für alle nachfolgenden Phasen ebenfalls null, was bedeutet, dass die barrier nicht wiederverwendet werden kann.
[bearbeiten] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |