Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
uni20::async::TaskAwaiter< A > Struct Template Reference

Forwarding awaiter that transfers one task ownership claim to an awaitable. More...

#include <async_task_promise.hpp>

Collaboration diagram for uni20::async::TaskAwaiter< A >:
[legend]

Public Member Functions

bool await_ready ()
 Checks whether the wrapped awaitable is ready.
 
decltype(auto) await_resume ()
 Resume wrapped awaitable and register explicit exception sinks if provided.
 
template<TaskPromise Promise>
auto await_suspend (std::coroutine_handle< Promise > handle)
 Suspend using promise-neutral ownership-transfer semantics.
 

Public Attributes

A awaitable
 
TaskPromiseBase & promise
 

Detailed Description

template<TaskAwaitable A>
struct uni20::async::TaskAwaiter< A >

Forwarding awaiter that transfers one task ownership claim to an awaitable.

Forward an awaitable using promise-neutral task ownership.

Member Function Documentation

◆ await_ready()

template<TaskAwaitable A>
bool uni20::async::TaskAwaiter< A >::await_ready ( )
inline

Checks whether the wrapped awaitable is ready.

Returns
true when no suspension is needed.

◆ await_resume()

template<TaskAwaitable A>
decltype(auto) uni20::async::TaskAwaiter< A >::await_resume ( )
inline

Resume wrapped awaitable and register explicit exception sinks if provided.

Returns
Result produced by the wrapped awaitable.

◆ await_suspend()

template<TaskAwaitable A>
template<TaskPromise Promise>
auto uni20::async::TaskAwaiter< A >::await_suspend ( std::coroutine_handle< Promise >  handle)
inline

Suspend using promise-neutral ownership-transfer semantics.

Template Parameters
PromiseConcrete enclosing promise type.
Parameters
handleCurrent coroutine handle.
Returns
Transfer handle selected by suspend logic.

Member Data Documentation

◆ awaitable

template<TaskAwaitable A>
A uni20::async::TaskAwaiter< A >::awaitable

◆ promise

template<TaskAwaitable A>
TaskPromiseBase& uni20::async::TaskAwaiter< A >::promise

The documentation for this struct was generated from the following file: