module Signal: Signalinclude Core.Signal
val handle_default : [ `Do_not_use_with_async ] -> 'aCore.Signal that we don't want people to use with
Async.val ignore : [ `Do_not_use_with_async ] -> 'aval set : [ `Do_not_use_with_async ] -> 'a -> 'bval signal : [ `Do_not_use_with_async ] -> 'a -> 'bval handle : ?stop:unit Import.Deferred.t -> t list -> f:(t -> unit) -> unithandle ?stop signals ~f arranges so that whenever a signal in signals is
delivered, f is called on that signal. If f raises, then an exception will be
raised to the monitor in effect when handle was called.
Multiple calls to handle with the same signal will cause all the handlers to run
when that signal is delivered, not just the last handler from the last call to
handle.
The first time handle is called for a signal, it will install a C signal handler for
that signal, which will replace the existing C signal handler for that signal.
val terminating : t listterminating is a list of signals that can be supplied to handle and whose default
behavior is to terminate the program: alrm hup int term usr1 usr2.
Various signals whose default_sys_behavior is `Terminate are not included:
| kill | it's not allowed to be handled |
| pipe | async already ignores this signal, since it handles EPIPE |
| prof | so that we can profile things with -p |
| vtalrm | it already has a handler |
val is_managed_by_async : t -> boolis_managed_by_async signal returns true iff signal is being managed by async, and
hence its default behavior is no longer in effect.