package async_unix
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=a6a86202acea433b5c739ac20190a9a364da9d9eb7ebd402f517b8c58983839b
doc/async_unix/Async_unix/Signal/index.html
Module Async_unix.Signal
Source
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 t = Core.Signal.t
with module Expert := Core.Signal.Expert
include Bin_prot.Binable.S with type t := t
include Bin_prot.Binable.S_only_functions with type t := t
This function only needs implementation if t
exposed to be a polymorphic variant. Despite what the type reads, this does *not* produce a function after reading; instead it takes the constructor tag (int) before reading and reads the rest of the variant t
afterwards.
include Core.Comparable.S with type t := t
include Base.Comparable.S with type t := t
ascending
is identical to compare
. descending x y = ascending y x
. These are intended to be mnemonic when used like List.sort ~compare:ascending
and List.sort ~cmp:descending
, since they cause the list to be sorted in ascending or descending order, respectively.
clamp_exn t ~min ~max
returns t'
, the closest value to t
such that between t' ~low:min ~high:max
is true.
Raises if not (min <= max)
.
type comparator_witness = Core.Signal.comparator_witness
val comparator : (t, comparator_witness) Base__.Comparator.comparator
include Base.Stringable.S with type t := t
of_caml_int
constructs a Signal.t
given an OCaml internal signal number. This is only for the use of the Core_unix
module.
to_string t
returns a human-readable name: "sigabrt", "sigalrm", ...
type sys_behavior = [
| `Continue
(*Continue the process if it is currently stopped
*)| `Dump_core
(*Terminate the process and dump core
*)| `Ignore
(*Ignore the signal
*)| `Stop
(*Stop (suspend) the process
*)| `Terminate
(*Terminate the process
*)
]
The behaviour of the system if a signal is received by a process. See include/linux/kernel.h in the Linux kernel source tree (not the file /usr/include/linux/kernel.h).
Queries the default system behavior for a signal.
Specific signals, along with their default behavior and meaning.
Ignore
No-op; can be used to test whether the target process exists and the current process has permission to signal it
We override values from Core.Signal
that we don't want people to use with Async.
handle ?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.
If stop
is passed, the signal handler will be uninstalled when stop
resolves.
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 |