...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
A completion token that represents the currently executing coroutine.
template< typename Executor> class basic_yield_context
Name |
Description |
---|---|
The cancellation slot type associated with the yield context. |
|
The executor type associated with the yield context. |
Name |
Description |
---|---|
basic_yield_context [constructor] |
Construct a yield context from another yield context type. |
Determine whether the current coroutine has been cancelled. |
|
Get the cancellation slot associated with the coroutine. |
|
Get the cancellation state associated with the coroutine. |
|
Get the executor associated with the yield context. |
|
Return a yield context that sets the specified error_code. |
|
Reset the cancellation state associated with the coroutine. |
|
Determine whether the coroutine throws if trying to suspend when
it has been cancelled. |
The basic_yield_context
class is a completion
token type that is used to represent the currently executing stackful coroutine.
A basic_yield_context
object may be
passed as a completion token to an asynchronous operation. For example:
template <typename Executor> void my_coroutine(basic_yield_context<Executor> yield) { ... std::size_t n = my_socket.async_read_some(buffer, yield); ... }
The initiating function (async_read_some in the above example) suspends the current coroutine. The coroutine is resumed when the asynchronous operation completes, and the result of the operation is returned.
Header: boost/asio/spawn.hpp
Convenience header: None