Signal handling.
To discourage use of the Signal.Expert module, we hide it here. People can use
Core.Signal.Expert if they need.
include module type of Core.Signal with type Signal.t = Core.Signal.t with module Signal.Expert := Core.Signal.Expertval bin_t : t Bin_prot.Type_class.tval bin_read_t : t Bin_prot.Read.readerval __bin_read_t__ : (int ‑> t) Bin_prot.Read.readerval bin_reader_t : t Bin_prot.Type_class.readerval bin_size_t : t Bin_prot.Size.sizerval bin_write_t : t Bin_prot.Write.writerval bin_writer_t : t Bin_prot.Type_class.writerval bin_shape_t : Bin_prot.Shape.tval t_of_sexp : Base.Sexp.t ‑> tval sexp_of_t : t ‑> Base.Sexp.tval clamp : t ‑> min:t ‑> max:t ‑> t Base.Or_error.tval comparator : (t, comparator_witness) Base.Comparator.comparatorval validate_lbound : min:t Base.Maybe_bound.t ‑> t Base.Validate.checkval validate_ubound : max:t Base.Maybe_bound.t ‑> t Base.Validate.checkval validate_bound : min:t Base.Maybe_bound.t ‑> max:t Base.Maybe_bound.t ‑> t Base.Validate.checkmodule Replace_polymorphic_compare : sig ... endmodule Map : sig ... endmodule Set : sig ... endval compare : t ‑> t ‑> Core_kernel__.Import.intval hash_fold_t : Base.Hash.state ‑> t ‑> Base.Hash.stateval hash : t ‑> Base.Hash.hash_valueval hashable : t Core_kernel.Hashtbl.Hashable.tmodule Table : sig ... endmodule Hash_set : sig ... endmodule Hash_queue : sig ... endval of_string : string ‑> tval of_system_int : int ‑> tval to_system_int : t ‑> intval of_caml_int : int ‑> tval to_caml_int : t ‑> intval to_string : t ‑> stringval sys_behavior_of_sexp : Base.Sexp.t ‑> sys_behaviorval __sys_behavior_of_sexp__ : Base.Sexp.t ‑> sys_behaviorval sexp_of_sys_behavior : sys_behavior ‑> Base.Sexp.tval default_sys_behavior : t ‑> sys_behaviorval handle_default : t ‑> unitval ignore : t ‑> unitval sexp_of_pid_spec : pid_spec ‑> Base.Sexp.tval can_send_to : Core__.Import.Pid.t ‑> boolval sigprocmask : sigprocmask_command ‑> t list ‑> t listval sigpending : unit ‑> t listval sigsuspend : t list ‑> unitval abrt : tval alrm : tval bus : tval chld : tval cont : tval fpe : tval hup : tval ill : tval int : tval kill : tval pipe : tval poll : tval prof : tval quit : tval segv : tval sys : tval stop : tval term : tval trap : tval tstp : tval ttin : tval ttou : tval urg : tval usr1 : tval usr2 : tval vtalrm : tval xcpu : tval xfsz : tval zero : tmodule Stable : sig ... endval handle_default : [ `Do_not_use_with_async ] ‑> _We override values from Core.Signal that we don't want people to use with
Async.
val handle : ?stop:unit Async_unix__.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
it, replacing 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.