17template <
typename PromiseType>
39 promise_ptr = &
h.promise();
40 h.promise().active_delay_context = Vruta::DelayContext::AWAIT;
91 [[nodiscard]]
inline bool await_ready() const noexcept {
return false; }
95 promise_ptr = &
h.promise();
97 Vruta::DelayContext::AWAIT, std::memory_order_release);
132 : m_source(
std::move(source))
139 promise_ptr->
own(m_source);
Vruta::event_promise & await_resume() const noexcept
std::shared_ptr< Vruta::NetworkSource > m_source
GetEventPromise(std::shared_ptr< Vruta::NetworkSource > source=nullptr)
Event-domain promise accessor with optional NetworkSource ownership transfer.
bool await_ready() const noexcept
void await_suspend(std::coroutine_handle< promise_handle > h) noexcept
promise_handle & await_resume() const noexcept
Promise accessor specialization for cross_promise.
promise_handle & await_resume() const noexcept
bool await_ready() const noexcept
void await_suspend(std::coroutine_handle< promise_handle > h) noexcept
PromiseType promise_handle
Templated awaitable for accessing a coroutine's promise object.
std::atomic< DelayContext > active_delay_context
Active delay context controlling which pump(s) may resume this routine.
Coroutine promise for routines resumed by more than one clock.
void own(std::shared_ptr< Vruta::NetworkSource > source)
Transfer ownership of a NetworkSource to this coroutine frame.