Problem statement
Today we have several levels of APIs for the runtime that allows a full control from the user of the framework over the lifecycle of it.
The issue is that the user can put the stack in a bad state without noticing: for example calling start_all_tasks twice or mixing it with application.run
Proposed solution
Add a small enum based state machine to track the validity of those lifecycle changes and emit an error accordingly.
Alternatives considered (optional)
Make that debug only but this should be so small it might not worth it
Impact / scope (optional)
- Affected crates, platforms, or features:
Additional context (optional)
Problem statement
Today we have several levels of APIs for the runtime that allows a full control from the user of the framework over the lifecycle of it.
The issue is that the user can put the stack in a bad state without noticing: for example calling start_all_tasks twice or mixing it with application.run
Proposed solution
Add a small enum based state machine to track the validity of those lifecycle changes and emit an error accordingly.
Alternatives considered (optional)
Make that debug only but this should be so small it might not worth it
Impact / scope (optional)
Additional context (optional)