std::barrier<CompletionFunction>::arrive
[[nodiscard]] arrival_token arrive( std::ptrdiff_t n = 1 ); | (since 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/w/cpp/thread/barrier/arrive