std::coroutine_handle<Promise>::operator(), std::coroutine_handle<Promise>::resume
来自 cppreference.cn
其他特化版本的成员 |
||
void operator()() const; void resume() const; |
(1) | (自 C++20 起) |
`std::coroutine_handle |
||
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
的调用抛出或重新抛出异常,则该异常会被传播。
[编辑] 注释
在不同的执行代理上恢复的协程应避免在整个过程中依赖一致的线程身份,例如在挂起时持有互斥锁对象。
[编辑] 示例
本节不完整 原因:没有示例 |
[编辑] 参见
销毁一个协程 (公共成员函数) |