Boost C++ 库

...世界上最受尊敬和专业设计的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码标准

PrevUpHomeNext

yield_context

一个 完成令牌 对象,表示当前正在执行的协程。

typedef basic_yield_context< any_io_executor > yield_context;
类型

名称

描述

cancellation_slot_type

与 yield 上下文关联的取消槽类型。

executor_type

与 yield 上下文关联的执行器类型。

成员函数

名称

描述

basic_yield_context [构造函数]

从另一个 yield 上下文类型构造 yield 上下文。

cancelled

确定当前协程是否已被取消。

get_cancellation_slot

获取与协程关联的取消槽。

get_cancellation_state

获取与协程关联的取消状态。

get_executor

获取与 yield 上下文关联的执行器。

operator[]

返回一个设置了指定 error_code 的 yield 上下文。

reset_cancellation_state

重置与协程关联的取消状态。

throw_if_cancelled

确定当协程已被取消时尝试挂起是否抛出异常。

设置当协程已被取消时尝试挂起是否抛出异常。

basic_yield_context 类是一种完成令牌类型,用于表示当前正在执行的堆栈协程。 basic_yield_context 对象可以作为完成令牌传递给异步操作。 例如

template <typename Executor>
void my_coroutine(basic_yield_context<Executor> yield)
{
  ...
  std::size_t n = my_socket.async_read_some(buffer, yield);
  ...
}

发起函数(在上面的例子中是 async_read_some)挂起当前的协程。当异步操作完成时,协程恢复执行,并返回操作的结果。

要求

头文件: boost/asio/spawn.hpp

便捷头文件:


PrevUpHomeNext