Spec-Zone.ru › C++

std::coroutine_handle<Promise>::operator(), std::coroutine_handle<Promise>::resume

Член других специализаций
void operator()() const;
void resume() const;
(1) (начиная с C++20)
Член специализации std::coroutine_handle<std::noop_coroutine_promise>
constexpr void operator()() const noexcept;
constexpr void resume() const noexcept;
(2) (начиная с C++20)
1) Возобновляет выполнение сопрограммы, на которую ссылается *this, или ничего не делает, если сопрограмма является пустой сопрограммой.
2) Ничего не делает.

Поведение не определено, если *this не ссылается на приостановленную сопрограмму или сопрограмма не является пустой и приостановлена в точке окончательной приостановки. Параллельное возобновление сопрограммы может привести к гонке данных.

Возобновление сопрограммы на агенте выполнения, отличном от того, на котором она была приостановлена, имеет поведение, определяемое реализацией, если только каждый агент выполнения не является потоком, представленным std::thread или std::jthread, либо не является потоком, выполняющим main.

Параметры

(нет)

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

(нет)

Исключения

Если при выполнении сопрограммы выбрасывается исключение, оно перехватывается, и для объекта promise сопрограммы вызывается unhandled_exception. Если вызов unhandled_exception выбрасывает или повторно выбрасывает исключение, это исключение передаётся вызывающему коду.

Примечания

Сопрограмме, возобновляемой на другом агенте выполнения, следует избегать зависимости от постоянства идентификатора потока, например удержания объекта mutex через точку приостановки.

Пример

См. также

destroy
уничтожает сопрограмму
(открытая функция-член)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/coroutine/coroutine_handle/resume

Spec-Zone.ru

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