SupervisionStatus Type
A consistent, point-in-time snapshot of a `SupervisionSession`'s live state — read atomically, so every field agrees with the others (no torn read across a concurrent update from the supervision loop). Only non-secret facts are exposed (activity, counts, the current child's pid/start time); argv and environment values never appear here, matching `ProcessKitDiagnostics`'s taxonomy. Sealed with an internal constructor so it can gain fields without breaking the frozen API.
Instance members
| Instance member |
Description
|
Full Usage:
this.IsActive
Returns: bool
|
Whether the supervision loop is still running: `true` from `StartAsync` until supervision ends (naturally, via a graceful `SupervisionSession.StopAsync`, or by token cancellation), `false` once the final `SupervisionOutcome` (or terminal error) has been produced.
|
Full Usage:
this.IsStormPaused
Returns: bool
|
Whether restarts are currently paused by the failure-storm guard (`Supervisor.StormPause`) — `true` only while a storm pause is being slept out. Always `false` when `StormPause` is unset.
|
Full Usage:
this.Pid
Returns: int option
|
The OS process id of the current live incarnation, or `None` when no child is alive right now (between incarnations, during a backoff/storm pause, or once supervision has ended) or when the runner exposes no live handle (a scripted test double).
|
Full Usage:
this.Restarts
Returns: int
|
How many times the child has been *re*-run so far, live — mirrors `SupervisionOutcome.Restarts` but updates as each restart happens rather than only once supervision ends. The first run is not a restart, so `0` while the first incarnation is alive.
|
|
When the current live incarnation started, including a capture-only incarnation whose `Pid` is unavailable, or `None` when no incarnation is active right now.
|
ProcessKit API Reference