std::experimental::barrier:: arrive_and_drop
|
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) |