Spec-Zone.ru › C++

std::barrier<CompletionFunction>::arrive_and_wait

void arrive_and_wait();
(since C++20)

Атомарно уменьшает ожидаемое значение счётчика на 1, затем блокируется в точке синхронизации для текущей фазы до тех пор, пока не будет выполнена завершающая часть текущей фазы. Эквивалентно wait(arrive());.

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

Параметры

(нет)

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

(нет)

Исключения

Выбрасывает 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_wait

Spec-Zone.ru

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