Spec-Zone.ru › C++

std::barrier<CompletionFunction>::arrive_and_wait

void arrive_and_wait();
(начиная с 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/cpp/thread/barrier/arrive_and_wait

Spec-Zone.ru

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