std::barrier<CompletionFunction>::arrive
arrival_token arrive( std::ptrdiff_t n = 1 ); | (начиная с C++20) |
Создаёт объект arrival_token, связанный с точкой синхронизации фазы для текущей фазы. Затем уменьшает ожидаемое количество на n.
Эта функция выполняется атомарно. Вызов этой функции строго предшествует началу шага завершения фазы для текущей фазы.
Поведение не определено, если n меньше или равно 0 либо больше ожидаемого количества для текущей фазы барьера.
Параметры
| n | - | значение, на которое уменьшается ожидаемое количество |
Возвращаемое значение
Созданный объект arrival_token.
Исключения
В случае ошибки выбрасывает std::system_error с кодом ошибки, допустимым для типов мьютексов.
Примечания
Эта функция может инициировать шаг завершения фазы для текущей фазы.
Пример
См. также
| блокируется в точке синхронизации фазы, пока не будет выполнен шаг завершения этой фазы (открытая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/thread/barrier/arrive