Namespaces
Variants

std::experimental::barrier:: arrive_and_wait

From cppreference.net
void arrive_and_wait ( ) ;
(TS параллелизма)

Блоки и достигают точки синхронизации барьера.

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

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

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

Примечания

Безопасно, чтобы поток вызывал либо arrive_and_wait() , либо arrive_and_drop() сразу после возврата из этого вызова. Не требуется гарантировать, что все заблокированные потоки вышли из arrive_and_wait() перед тем, как поток вызовет его снова.

Набор участвующих потоков для barrier , созданного для num_threads потоков, представляет собой первые num_threads потоков, достигающих его точки синхронизации. Этот набор не изменяется от цикла к циклу, за исключением потоков, удаленных из набора в результате вызовов arrive_and_drop() .

Исключения

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

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

прибыть в точку синхронизации и удалить текущий поток из набора участвующих потоков
(публичная функция-член)