package b0
Module Os.ExitSource
Program exit.
Specifying exits
The type for specifying program exits. Either an exit code or a function (should be) calling B0_std.Cmd.execv.
exec ?env ?cwd file argv is an Exec _. That has a call to Os.Cmd.execv with the corresponding arguments.
get_code e is the exit code of e. Raises Invalid_argument if e is Exec.
Exiting exits
exit e exits according to e:
- If
eisCode c,Stdlib.exitcis called and the function never returns. - If
eisExec execv,execvis called. This can only return with anError _. In that case log it and call the function again with an error code - this guarantees termination.
Signal exit hooks
on_sigint ~hook f calls f () and returns its value. If SIGINT is signalled during that time hook is called followed by exit 130 – that is the exit code a SIGINT would produce.
on_sigint replaces an existing signal handler for Sys.sigint during time of the function call. It is restored when the function returns.
Note. Since Stdlib.exit is called Stdlib.at_exit functions are called if a SIGINT occurs during the call to f. This is not the case on an unhandled SIGINT.