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