Namespaces
Variants

std::experimental::barrier:: arrive_and_drop

From cppreference.net
void arrive_and_drop ( ) ;
(конкурентность TS)

Прибыть в точку синхронизации барьера и удалить текущий поток из набора участвующих потоков. Не определено, блокирует ли эта функция до завершения фазы завершения.

Поведение не определено, если вызывающий поток не входит в набор участвующих потоков данного барьера.

Вызовы arrive_and_drop синхронизируются с началом фазы завершения барьера. Если вызов блокируется, то завершение фазы завершения синхронизируется с возвратом из вызова.

Вызовы arrive_and_drop и arrive_and_wait никогда не приводят к состоянию гонки данных между собой или друг с другом.

Исключения

Ничего не выбрасывает.

Примечания

Если каждый участвующий поток вызывает arrive_and_drop() , барьер может быть только уничтожен.

После того как поток вызывает arrive_and_drop() на барьере, он больше не является членом своего набора участвующих потоков и, следовательно, больше не может вызывать ни arrive_and_drop() , ни arrive_and_wait() на том же барьере.

Смотрите также

прибыть в точку синхронизации и заблокироваться
(public member function)