std::barrier<CompletionFunction>:: arrive_and_wait
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
barrier::arrive_and_wait
|
||||
| Constants | ||||
|
void
arrive_and_wait
(
)
;
|
(начиная с C++20) | |
Атомарно уменьшает ожидаемое значение счетчика на 1, затем блокируется в точке синхронизации для текущей фазы до тех пор, пока не будет выполнен шаг завершения текущей фазы. Эквивалентно wait ( arrive ( ) ) ; .
Поведение не определено, если ожидаемое количество для текущей фазы равно нулю.
Содержание |
Параметры
(нет)
Возвращаемое значение
(нет)
Исключения
Выбрасывает std::system_error с кодом ошибки, допустимым для типов мьютексов, при возникновении ошибки.
Примечания
Если текущее ожидаемое количество уменьшается до нуля при вызове этой функции, выполняется этап завершения фазы, и эта функция не блокируется.
Если текущее ожидаемое количество равно нулю перед вызовом этой функции, начальное ожидаемое количество для всех последующих фаз также равно нулю, что означает, что
barrier
не может быть повторно использован.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |