Move-only promise-neutral ownership claim for a Uni20 coroutine.
More...
#include <async_task.hpp>
Move-only promise-neutral ownership claim for a Uni20 coroutine.
BasicTask is the internal task currency used by awaiters, continuations, and schedulers after typed initial admission.
◆ BasicTask() [1/4]
| uni20::async::BasicTask::BasicTask |
( |
| ) |
|
|
defaultnoexcept |
◆ BasicTask() [2/4]
| uni20::async::BasicTask::BasicTask |
( |
BasicTask const & |
| ) |
|
|
delete |
◆ BasicTask() [3/4]
| uni20::async::BasicTask::BasicTask |
( |
BasicTask && |
other | ) |
|
|
inlinenoexcept |
Move-construct one ownership claim.
◆ ~BasicTask()
| uni20::async::BasicTask::~BasicTask |
( |
| ) |
|
|
inlinenoexcept |
Release the ownership claim and destroy the frame when appropriate.
◆ BasicTask() [4/4]
|
|
inlineexplicitprotectednoexcept |
◆ abandon_leak()
| void uni20::async::BasicTask::abandon_leak |
( |
| ) |
|
|
inline |
Intentionally leak the coroutine during emergency unwinding.
◆ await_ready()
| bool uni20::async::BasicTask::await_ready |
( |
| ) |
const |
|
inlinenoexcept |
◆ await_resume()
| void uni20::async::BasicTask::await_resume |
( |
| ) |
|
|
inline |
◆ await_suspend()
template<TaskPromise ParentPromise>
| std::coroutine_handle uni20::async::BasicTask::await_suspend |
( |
std::coroutine_handle< ParentPromise > |
parent | ) |
|
Await a nested task from any Uni20 task promise type.
◆ coroutine_handle()
| std::coroutine_handle uni20::async::BasicTask::coroutine_handle |
( |
| ) |
const |
|
inlinenoexcept |
Return the generic coroutine handle for diagnostics.
◆ debug_name()
| BasicTask & uni20::async::BasicTask::debug_name |
( |
std::string const & |
label | ) |
|
|
inline |
Assign an optional debug label.
◆ destroy()
| void uni20::async::BasicTask::destroy |
( |
| ) |
|
|
inlinenoexcept |
Destroy an exclusively owned coroutine.
◆ exception_on_resume()
| void uni20::async::BasicTask::exception_on_resume |
( |
std::exception_ptr |
error | ) |
|
|
inlinenoexcept |
Store an exception for delivery on the next resume.
◆ handle()
| TaskHandle uni20::async::BasicTask::handle |
( |
| ) |
const |
|
inlinenoexcept |
Return the erased task identity.
◆ make_sole_owner()
Retain a task only when it is the sole ownership claimant.
◆ operator bool()
| uni20::async::BasicTask::operator bool |
( |
| ) |
const |
|
inlineexplicitnoexcept |
◆ operator=() [1/2]
Move-assign one ownership claim.
◆ operator=() [2/2]
◆ preferred_numa_node()
| std::optional< int > uni20::async::BasicTask::preferred_numa_node |
( |
| ) |
const |
|
inlinenoexcept |
◆ release_handle()
| TaskHandle uni20::async::BasicTask::release_handle |
( |
| ) |
|
|
inline |
Release this ownership claim to a scheduler activation.
◆ reschedule()
| void uni20::async::BasicTask::reschedule |
( |
BasicTask |
task | ) |
|
|
inlinestatic |
Reschedule a task when it becomes the sole ownership claimant.
◆ resume()
| void uni20::async::BasicTask::resume |
( |
| ) |
|
|
inline |
Resume the coroutine and transfer this ownership claim.
◆ set_cancel_on_resume()
| void uni20::async::BasicTask::set_cancel_on_resume |
( |
| ) |
|
|
inlinenoexcept |
Request cancellation before the next resume.
◆ set_preferred_numa_node()
| void uni20::async::BasicTask::set_preferred_numa_node |
( |
std::optional< int > |
node | ) |
|
|
inlinenoexcept |
◆ set_scheduler()
| bool uni20::async::BasicTask::set_scheduler |
( |
IScheduler * |
scheduler | ) |
|
|
inline |
Install the scheduler used for later resumption.
◆ AsyncTaskTestAccess
| friend struct AsyncTaskTestAccess |
|
friend |
◆ TaskFactory
◆ TaskPromiseBase
The documentation for this class was generated from the following files: