Module os/signal
os/signal
High-level signal handling.
Wraps std/sys/signal with a typed Signal enum.
Example
{ on_signal, off_signal, Signal, SignalHandler } :: import "std/os/signal";
handler :: (fn(data: *(u8)) -> unit)({ println("Caught SIGINT"); });
on_signal(.Interrupt, handler);
Types
Signal
enum
Signal
Portable signal identifiers.
Variants
| Variant | Fields | Description |
|---|---|---|
Interrupt | SIGINT — interrupt from keyboard (Ctrl-C). | |
Terminate | SIGTERM — termination request. | |
Hangup | SIGHUP — terminal hangup. | |
User1 | SIGUSR1 — user-defined signal 1. | |
User2 | SIGUSR2 — user-defined signal 2. | |
Pipe | SIGPIPE — broken pipe. | |
Alarm | SIGALRM — timer alarm. | |
Child | SIGCHLD — child process status change. |
SignalHandler
type-alias
SignalHandler
Functions
on_signal
function
fn(sig : Signal, handler : SignalHandler, using(exn : Exception)) -> unit
Register a handler for the given signal.
Parameters
| Name | Type | Notes |
|---|---|---|
sig | Signal | |
handler | SignalHandler |
Effects
| Name | Type | Notes |
|---|---|---|
exn | Exception | comptime, implicit |
Returns: unit
off_signal
function