NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
virtual_thread_task< void >结构体 参考

virtual_thread_task 的 void 特化版本 更多...

#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_taskoperator= (virtual_thread_task &&other) noexcept
 移动赋值运算符
bool await_ready () noexcept
 co_await 就绪检查
bool await_suspend (coroutine_handle<> caller) noexcept
 co_await 挂起时注册 continuation
void await_resume ()
 co_await 恢复时检查异常
void get_result ()
 阻塞等待任务完成并获取结果
bool is_done () const noexcept
 检查任务是否已完成
bool valid () const noexcept
 检查任务是否关联有效共享状态

Public 属性

coroutine_handle< promise_typehandle_ {nullptr}
 协程句柄
inner::task_shared_state< void > * shared_state_ {nullptr}
 共享状态指针

详细描述

virtual_thread_task 的 void 特化版本

表示一个返回 void 的异步任务,支持 co_await 等待和 get_result() 同步获取结果。 任务结果(或异常)存储在引用计数的堆对象中,确保协程帧销毁后仍可安全访问。

在文件 virtual_thread.hpp240 行定义.

构造及析构函数说明

◆ virtual_thread_task()

virtual_thread_task< void >::virtual_thread_task ( coroutine_handle< promise_type > h)
inlineexplicit

从协程句柄构造任务

参数
h协程句柄

在文件 virtual_thread.hpp381 行定义.

引用了 handle_ , 以及 shared_state_.

◆ ~virtual_thread_task()

析构函数

释放共享状态的引用。

在文件 virtual_thread.hpp396 行定义.

引用了 handle_, memory_order_acquire , 以及 shared_state_.

成员函数说明

◆ await_ready()

bool virtual_thread_task< void >::await_ready ( )
inlinenoexcept

◆ await_suspend()

bool virtual_thread_task< void >::await_suspend ( coroutine_handle<> caller)
inlinenoexcept

co_await 挂起时注册 continuation

参数
caller等待此任务的协程句柄
返回
true 需要挂起,false 已可继续

在文件 virtual_thread.hpp454 行定义.

引用了 memory_order_acq_rel, memory_order_acquire, memory_order_release , 以及 shared_state_.

被这些函数引用 virtual_thread_task< void >::promise_type::await_transform(), virtual_thread_task< void >::promise_type::await_transform() , 以及 virtual_thread_task< void >::promise_type::final_suspend().

◆ get_result()

void virtual_thread_task< void >::get_result ( )
inline

阻塞等待任务完成并获取结果

若任务未完成,阻塞当前线程直到任务完成。 若任务抛出异常,在此重新抛出。

在文件 virtual_thread.hpp480 行定义.

引用了 memory_order_acquire, rethrow_exception() , 以及 shared_state_.


该结构体的文档由以下文件生成: