-
Notifications
You must be signed in to change notification settings - Fork 13.7k
Closed
Labels
P-lowLow priorityLow priority
Description
The semantics of rust tasks allow them to fail unexpectedly. Currently the two scenarios where this happen are:
- Immediately before or after any yield (e.g. send and receive). In the future the compiler will insert yield points as well
- When stack growth fails
The story for how tasks should cope with this are unclear. Right now there is a function unkillable
which creates a scope where tasks cannot be killed by other tasks, but it does not do anything about hitting the end of the stack.
There is a lot of unsafe code in the core and standard libraries that is not aware of its obligations to cope with random failure.
I would like to instrument the runtime and core libraries to allow failure to be injected at various points, then create a tool that takes a crate of tests and runs them while poking at them with the fail stick.
Metadata
Metadata
Assignees
Labels
P-lowLow priorityLow priority