The standard library Interprocess_Signals api defines access to the runtime signals facility, which enables Mythryl-level handling of both POSIX interprocess signnals like SIGALRM and also internally generated signals for monitoring (for example) garbage collection.
The Interprocess_Signals api is implemented by the interprocess_signals package.
The Interprocess_Signals api source code is in src/lib/std/src/nj/interprocess-signals.api.
The above information is manually maintained and may contain errors.
api { Signal = SIGABRT | SIGALRM | SIGBUS | SIGCHLD | SIGCONT | SIGFPE | SIGHUP | SIGILL | SIGINT | SIGIO | SIGKILL | SIGPIPE | SIGPROF | SIGPWR | SIGQUIT | SIGSEGV | SIGSTKFLT | SIGSTOP | SIGSYS | SIGTERM | SIGTRAP | SIGTSTP | SIGTTIN | SIGTTOU | SIGURG | SIGUSR1 | SIGUSR2 | SIGVTALRM | SIGWINCH | SIGXCPU | SIGXFSZ; all_signals : List(Signal ); signal_to_int : Signal -> Int; signal_to_string : Signal -> String; int_to_signal : Int -> Signal; Signal_Action = DEFAULT | HANDLER (Signal , Int , fate::Fate(Void )) -> fate::Fate(Void ) | IGNORE; set_signal_handler : (Signal , Signal_Action) -> Signal_Action; override_signal_handler : (Signal , Signal_Action) -> Signal_Action; get_signal_handler : Signal -> Signal_Action; Signal_Mask = MASK List(Signal ) | MASK_ALL; mask_signals : Signal_Mask -> Void; unmask_signals : Signal_Mask -> Void; masked_signals : Void -> Signal_Mask; pause : Void -> Void; signal_is_supported_by_host_os : Signal -> Bool; ascii_signal_name_to_portable_signal_id : String -> Int; maximum_valid_portable_signal_id : Void -> Int; set_log_if_on : Bool -> Void;};