/usr/lib/ocaml/netsys/netsys_signalling.mli is in libocamlnet-ocaml-dev 3.7.3-3build2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | (* $Id: netsys_signalling.mli 1160 2007-12-03 00:10:15Z gerd $ *)
(** Signalling between threads in a poll-compatible way *)
(** We define here an abstraction that can be both used on Unix and
Win32 to signal special conditions between threads. It is
a kind of semaphore tied to file descriptors.
*)
class type sigchannel =
object
method file_descr : Unix.file_descr
(** A file descriptor that can be used for polling until the signal
arrives. One has to poll for reading.
*)
method receive : unit -> unit
(** Receive a signal. If no signal is available, the function will block
until a signal arrives. One receives as many signals as have been
sent.
*)
method send : unit -> unit
(** Send a signal. Never blocks. *)
method dispose : unit -> unit
(** Release OS resources associated with this channel. Implicitly
closes [file_descr].
*)
end
val create_sigchannel : unit -> sigchannel
(** Creates a new signal channel - for all platforms.
Unix: Signalling is implemented using a pipe. By sending a single
over the pipe, it is communicated that a positive number of signals
is available for receiving. The file desciptor can be used with
any form of polling (any Unix pollset will do).
Win32: The file descriptor is in reality a Win32 event object.
When a positive number of signals is available for receiving,
the event object is set. The file descriptor can be used with
[Netsys_pollset_win32.sigchannel_pollset].
Note that signal channels are also avaiable for single-threaded
programs, although they are probably not that useful there.
*)
|