LeviLamina
Loading...
Searching...
No Matches
YieldAwaiter.h
1#pragma once
2
3#include <coroutine>
4
5#include "ll/api/coro/Executor.h"
6
7namespace ll::coro {
8constexpr inline struct Yield {
9} yield;
11 ExecutorRef exec;
12
13public:
14 constexpr YieldAwaiter(ExecutorRef exec = nullptr) : exec(exec) {}
15
16 constexpr void setExecutor(ExecutorRef ex) { exec = ex; }
17
18 constexpr bool await_ready() const noexcept { return false; }
19 void await_suspend(std::coroutine_handle<> handle) { exec->execute(handle); }
20 constexpr void await_resume() const noexcept {}
21};
22} // namespace ll::coro
Definition YieldAwaiter.h:10
Definition optional_ref.h:10
Definition YieldAwaiter.h:8