|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
异步任务主模板 更多...
#include <virtual_thread.hpp>
类 | |
| struct | promise_type |
| 协程 promise_type,管理任务生命周期与返回值存储 更多... | |
Public 成员函数 | |
| virtual_thread_task ()=default | |
| 默认构造,创建空任务 | |
| virtual_thread_task (coroutine_handle< promise_type > h) | |
| 从协程句柄构造任务 | |
| ~virtual_thread_task () | |
| 析构函数 — 清理未调度的帧,释放共享状态引用 | |
| virtual_thread_task (virtual_thread_task &&other) noexcept | |
| 移动构造函数 | |
| virtual_thread_task & | operator= (virtual_thread_task &&other) noexcept |
| 移动赋值运算符 | |
| bool | await_ready () noexcept |
| co_await 就绪检查 | |
| bool | await_suspend (coroutine_handle<> caller) noexcept |
| co_await 挂起时注册 continuation | |
| T | await_resume () |
| co_await 恢复时返回结果或抛出异常 | |
| T | get_result () |
| 阻塞获取任务结果 | |
| bool | is_done () const noexcept |
| 检查任务是否已完成 | |
| bool | valid () const noexcept |
| 检查任务是否关联有效共享状态 | |
Public 属性 | |
| coroutine_handle< promise_type > | handle_ {nullptr} |
| 协程句柄 | |
| inner::task_shared_state< T > * | shared_state_ {nullptr} |
| 共享状态指针 | |
异步任务主模板
virtual_thread_task 的类型化版本
| T | 任务返回值类型,默认为 void |
| T | 任务返回值类型 |
表示一个返回 T 类型值的异步任务。 提供带返回值的 get_result() 和 await_resume()。
在文件 virtual_thread.hpp 第 522 行定义.
|
inlinenoexcept |
co_await 就绪检查
在文件 virtual_thread.hpp 第 731 行定义.
引用了 memory_order_acquire , 以及 shared_state_.
被这些函数引用 virtual_thread_task< T >::promise_type::await_transform(), virtual_thread_task< T >::promise_type::await_transform() , 以及 virtual_thread_task< T >::promise_type::final_suspend().
|
inline |
co_await 恢复时返回结果或抛出异常
在文件 virtual_thread.hpp 第 751 行定义.
引用了 move(), rethrow_exception() , 以及 shared_state_.
被这些函数引用 virtual_thread_task< T >::promise_type::await_transform(), virtual_thread_task< T >::promise_type::await_transform() , 以及 virtual_thread_task< T >::promise_type::final_suspend().
|
inline |
阻塞获取任务结果
若任务未完成则阻塞当前线程。任务异常会在此重新抛出。
在文件 virtual_thread.hpp 第 764 行定义.
引用了 memory_order_acquire, move(), rethrow_exception() , 以及 shared_state_.