Namespaces
Variants

std::experimental::flex_barrier:: arrive_and_drop

From cppreference.net
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)