Module Signal

module Signal: Signal

include Core.Signal
val handle_default : [ `Do_not_use_with_async ] -> 'a
We override values from Core.Signal that we don't want people to use with Async.
val ignore : [ `Do_not_use_with_async ] -> 'a
val set : [ `Do_not_use_with_async ] -> 'a -> 'b
val signal : [ `Do_not_use_with_async ] -> 'a -> 'b
val handle : ?stop:unit Import.Deferred.t -> t list -> f:(t -> unit) -> unit
handle ?stop signals ~f arranges so that whenever a signal in signals is delivered, f is called on that signal. If f raises, than an exception will be raised to the monitor in effect when handle was called.

Calling handle has the side-effect of installing a C signal handler for every signal in signals, which will replace the existing C signal handler for that signal.

val terminating : t list
terminating 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 -> bool
is_managed_by_async signal returns true iff signal is being managed by async, and hence its default behavior is no longer in effect.