Various states a process can be in.
This is made public in case external implementations of
to re-use these process states in the external implementation.
Process expects to be running code. The process may not be currently scheduled by the scheduler, but the process has work to do if it is scheduled.
Process stopped executing and returned to the kernel because it called
yield syscall. This likely means it is waiting for some event to
occur, but it could also mean it has finished and doesn't need to be
The process is stopped, and its previous state was Running. This is used
if the kernel forcibly stops a process when it is in the
state. This state indicates to the kernel not to schedule the process,
but if the process is to be resumed later it should be put back in the
running state so it will execute correctly.
The process is stopped, and it was stopped while it was yielded. If this
process needs to be resumed it should be put back in the
The process is stopped, and it was stopped after it faulted. This basically means the app crashed, and the kernel decided to just stop it and continue executing other things. The process cannot be restarted without being reset first.
The process has caused a fault.
The process has never actually been executed. This of course happens when the board first boots and the kernel has not switched to any processes yet. It can also happen if an process is terminated and all of its state is reset as if it has not been executed yet.
impl StructuralEq for State[src]
impl StructuralPartialEq for State[src]
Auto Trait Implementations
type Error = Infallible
The type returned in the event of a conversion error.