Module reblessive::stack
source · Expand description
The stack runtime
A runtime for turning recursive functions into a number of futures which are run from a single flattened loop, preventing stack overflows.
This runtime also has support for external async function but it explicitly doesn’t support intra-task concurrency, i.e. calling select or join on multiple futures at the same time. These types of patterns break the stack allocation pattern which this executor uses to be able to allocate and run futures efficiently.
Structs§
- Future returned by
Runner::finish_async
- Struct returned by
Stack::enter
determines how futures should be ran. - A small minimal runtime for executing futures flattened onto the heap preventing stack overflows on deeply nested futures. Only capable of running a single future at the same time and has no support for waking tasks by itself.
- Future returned by
Runner::step_async
- A reference back to stack from inside the running future.
- Future returned by
Stk::run
- Future returned by
Stk::yield_now