std::coroutine_handle<Promise>::operator(), std::coroutine_handle<Promise>::resume
来自 cppreference.cn
其他特化版本成员 |
||
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 所指协程的执行,如果该协程是空操作协程(no-op coroutine)则不执行任何操作。
2) 不执行任何操作。
如果 *this 未指向被挂起的协程,或者该协程不是空操作协程且在其最终挂起点被挂起,则行为未定义。协程的并发恢复可能导致数据竞争。
除非每个执行代理都是由 std::thread 或 std::jthread 表示的线程,或者是执行 main
的线程,否则在不同于协程被挂起的执行代理上恢复协程的行为是实现定义的。
目录 |
[编辑] 参数
(无)
[编辑] 返回值
(无)
[编辑] 异常
如果协程的执行抛出异常,则该异常被捕获,并调用协程 promise 对象的 unhandled_exception
。如果对 unhandled_exception
的调用抛出或重新抛出异常,则该异常将传播。
[编辑] 注意
在不同执行代理上恢复的协程应避免在整个执行过程中依赖一致的线程标识,例如在挂起点前后持有互斥量对象。
[编辑] 示例
本节不完整 原因:无示例 |
[编辑] 参阅
销毁协程 (public 成员函数) |