1#ifndef MRS_LIB_CORO_TASK_IMPL_HPP_
2#define MRS_LIB_CORO_TASK_IMPL_HPP_
4#include <mrs_lib/coro/internal/thread_local_continuation_scheduler.hpp>
5#include <mrs_lib/coro/task.hpp>
12 template <
typename Derived>
13 inline bool BasePromiseType<Derived>::FinalAwaitable::await_ready() noexcept
18 template <
typename Derived>
19 inline void BasePromiseType<Derived>::FinalAwaitable::await_suspend(std::coroutine_handle<Derived> task_handle)
noexcept
22 schedule_coroutine_continuation(task_handle.promise().continuation_.release());
25 template <
typename Derived>
26 inline void BasePromiseType<Derived>::FinalAwaitable::await_resume() noexcept
31 template <
typename Derived>
32 inline std::suspend_always BasePromiseType<Derived>::initial_suspend()
37 template <
typename Derived>
38 inline auto BasePromiseType<Derived>::final_suspend() noexcept -> FinalAwaitable
43 template <
typename Derived>
44 inline void BasePromiseType<Derived>::set_continuation(OwningCoroutineHandle<> continuation)
46 continuation_ = std::move(continuation);
50 Task<T> PromiseType<T>::get_return_object()
52 return Task<T>(OwningCoroutineHandle<PromiseType>(std::coroutine_handle<PromiseType>::from_promise(*
this)));
56 void PromiseType<T>::return_value(T&& ret_val)
58 result_.set_value(std::move(ret_val));
62 void PromiseType<T>::unhandled_exception()
64 result_.set_exception(std::current_exception());
67 inline Task<void> PromiseType<void>::get_return_object()
69 return Task<void>(OwningCoroutineHandle<PromiseType>(std::coroutine_handle<PromiseType>::from_promise(*
this)));
72 inline void PromiseType<void>::return_void()
76 inline void PromiseType<void>::unhandled_exception()
78 exception_ = std::current_exception();
All mrs_lib functions, classes, variables and definitions are contained in this namespace.
Definition attitude_converter.h:24