|
uvco 0.1
|
Classes | |
| class | uvco::Scheduler |
Functions | |
| uvco::Scheduler::Scheduler () | |
| uvco::Scheduler::Scheduler (const Scheduler &)=delete | |
| uvco::Scheduler::Scheduler (Scheduler &&)=delete | |
| Scheduler & | uvco::Scheduler::operator= (const Scheduler &)=delete |
| Scheduler & | uvco::Scheduler::operator= (Scheduler &&)=delete |
| uvco::Scheduler::~Scheduler () | |
| void | uvco::Scheduler::enqueue (std::coroutine_handle<> handle) |
| Schedule a coroutine for resumption. | |
| void | uvco::Scheduler::cancel (std::coroutine_handle<> handle) |
| void | uvco::Scheduler::runAll () |
| Run all scheduled coroutines sequentially. | |
| std::coroutine_handle | uvco::Scheduler::getNext () |
| void | uvco::Scheduler::close () |
| bool | uvco::Scheduler::empty () const |
| std::coroutine_handle | uvco::Scheduler::getNextInner () |
Variables | |
| static constexpr bool | uvco::logSchedulerOperations = false |
| If set to true, log scheduler operations to stdout. | |
| std::deque< std::coroutine_handle<> > | uvco::Scheduler::resumable_ |
| void uvco::Scheduler::cancel | ( | std::coroutine_handle<> | handle | ) |
| void uvco::Scheduler::close | ( | ) |
close() should be called once the main promise has finished, and the process is preparing to exit; however, while the event loop is still running. Example: Once a user has pressed Ctrl-D in a tty application.
Otherwise, resources may be leaked. (This is usually not super important, because the event loop is finishing soon after anyway).
|
inlinenodiscard |
| void uvco::Scheduler::enqueue | ( | std::coroutine_handle<> | handle | ) |
Schedule a coroutine for resumption.
| std::coroutine_handle uvco::Scheduler::getNext | ( | ) |
Returns a handle to the next runnable suspended coroutine. This is mainly used by Loop::getNext() which in turns is used to implement symmetric hand-off, i.e. decentralized scheduling. By using this, all suspending awaiters can hand off control directly to the next coroutine instead of going through the scheduler first. This behavior can be disabled by setting the useSymmetricHandoff compile-time variable to false in scheduler.cc.
|
private |
| void uvco::Scheduler::runAll | ( | ) |
Run all scheduled coroutines sequentially.
|
default |
|
delete |
|
delete |
|
default |
|
staticconstexpr |
If set to true, log scheduler operations to stdout.
|
private |