Spec-Zone.ru › C++

std::barrier<CompletionFunction>::arrive_and_drop

void arrive_and_drop();
(начиная с C++20)

Уменьшает на единицу начальное ожидаемое количество для всех последующих фаз, а затем уменьшает на единицу ожидаемое количество для текущей фазы.

Эта функция выполняется атомарно. Вызов этой функции строго предшествует началу шага завершения текущей фазы в смысле happens-before.

Поведение не определено, если ожидаемое количество для текущей фазы равно нулю.

Параметры

(нет)

Возвращаемое значение

(нет)

Исключения

В случае ошибки выбрасывает std::system_error с кодом ошибки, допустимым для типов мьютексов.

Примечания

Эта функция может инициировать шаг завершения текущей фазы.

Если перед вызовом этой функции текущее ожидаемое количество равно нулю, начальное ожидаемое количество для всех последующих фаз также равно нулю, а значит, barrier нельзя использовать повторно.

Пример

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/thread/barrier/arrive_and_drop

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API