dpp::detail::task::final_awaiter
task.h
typename R
bool bool dpp::detail::task::final_awaiter< R >::await_ready () const noexcept await_ready dpp::detail::task::final_awaiter::await_ready

Always suspend at the end of the task. This allows us to clean up and resume the parent.

void void dpp::detail::task::final_awaiter< R >::await_resume () const noexcept await_resume dpp::detail::task::final_awaiter::await_resume

Function called when this object is co_awaited by the standard library at the end of final_suspend. Do nothing, return nothing.

std_coroutine::coroutine_handle std_coroutine::coroutine_handle dpp::detail::task::final_awaiter< R >::await_suspend (handle_t< R > handle) const noexcept await_suspend dpp::detail::task::final_awaiter::await_suspend handle_t< R > handle

The suspension logic of the coroutine when it finishes. Always suspend the caller, meaning cleaning up the handle is on us.

handle

The handle of this coroutine

std::coroutine_handle<> Handle to resume, which is either the parent if present or std::noop_coroutine() otherwise

The object automatically co_await-ed at the end of a task. Ensures nested coroutine chains are resolved, and the promise_t cleans up if it needs to.

Awaitable returned from task::promise_t's final_suspend. Resumes the parent and cleans up its handle if needed.

R

Return type of the task

- dpp::detail::task::final_awaiter
  await_ready
- dpp::detail::task::final_awaiter
  await_resume
- dpp::detail::task::final_awaiter
  await_suspend