std::coroutine_handle<Promise>::operator(), std::coroutine_handle<Promise>::resume
來自 cppreference.com
其他特化版本成員 |
||
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 成員函式) |