std::experimental::flex_barrier:: arrive_and_drop
|
void
arrive_and_drop
(
)
;
|
(Concurrency TS) | |
Erreichen Sie den Synchronisationspunkt der
flex_barrier
und entfernen Sie den aktuellen Thread aus der Menge der teilnehmenden Threads. Es ist nicht spezifiziert, ob diese Funktion blockiert, bis die Abschlussphase beendet ist. Falls die Funktion blockiert, kann der aufrufende Thread ausgewählt werden, um die Abschlussphase auszuführen.
Das Verhalten ist undefiniert, wenn der aufrufende Thread nicht in der Menge der teilnehmenden Threads dieser
flex_barrier
enthalten ist.
Aufrufe von
arrive_and_drop
synchronisieren mit dem Beginn der Abschlussphase der
flex_barrier
. Falls der Aufruf blockiert, dann synchronisiert der Abschluss der Abschlussphase mit der Rückkehr vom Aufruf.
Aufrufe von
arrive_and_drop
und
arrive_and_wait
führen niemals Datenrennen mit sich selbst oder untereinander ein.
Exceptions
Wirft nichts.
Hinweise
Die Abschlussphase wird ausgeführt, selbst wenn jeder teilnehmende Thread
arrive_and_drop
aufruft.
Nachdem ein Thread
arrive_and_drop
auf einer
flex_barrier
aufgerufen hat, kann er keine Memberfunktion mehr auf dieser Barriere aufrufen, außer dem Destruktor, selbst wenn das Funktionsobjekt, das durch die Abschlussphase aufgerufen wird, einen positiven Wert zurückgibt.
Siehe auch
|
Erreichen des Synchronisationspunkts und Blockieren
(Öffentliche Elementfunktion) |