Signals are statements delivered as coalescing notifications to the endpoint a process nominates with signal_bind — never a hijacked stack, never a question (liveness is the zero-length ping the harness answers). process_signal is supervisor-or-self gated, like kill; unbound targets accumulate a pending mask delivered on bind. timer_bind is the missing timed wait: a one-shot deadline landing in the same replyWait as everything else — what stop(), hello deadlines, and restart backoff are built from. runtime.service.run folds requests, signals, and notifications into callbacks; the VFS conversion deletes its hand-rolled loop and gains the whole lifecycle contract. The signals scenario drives ping, reload, terminate->exited, the timer, and the deaf-child deadline->killed path from ring 3. docs/process-lifecycle.md increments 1-4 are now as-built. |
||
|---|---|---|
| .. | ||
| device.zig | ||
| dma.zig | ||
| heap.zig | ||
| input.zig | ||
| ipc.zig | ||
| process.zig | ||
| runtime.zig | ||
| service.zig | ||
| start.zig | ||
| system-call.zig | ||
| system.zig | ||
| user.ld | ||