Module Fifowatcher


module Fifowatcher: sig .. end
fifowatcher.ml: Routines for creating and managing fifos


type channel_pipe =
| Process of Unix.file_descr
| Fifo of Unix.file_descr
| BrokenPipe
A connected process, FIFO

type signed_fd =
| Infd of Unix.file_descr
| Outfd of Unix.file_descr
| Eventfd of Unix.file_descr
Signed file descriptors.
val fdmap : (Unix.file_descr, string * string) Hashtbl.t
XXX This will get deprecated when we switch to inotify
val pidmap : (int, signed_fd list) Hashtbl.t
Maps pids to slice connections. Needed to clean up fds when a script dies with EPIPE
val backend_prefix : string Pervasives.ref
val open_fds : (Unix.file_descr, channel_pipe) Hashtbl.t
val receive_process_event : Globals.fname_and_fd -> Globals.fname_and_fd -> unit
Receive an event from a running script. This event must be relayed to the slice that invoked it.
idesc : fd/fname identifier for process
val openentry_int : string -> string -> string * string -> unit
val reopenentry_int : Unix.file_descr -> string -> string -> unit
val receive_fifo_event : Globals.fname_and_fd -> Globals.fname_and_fd -> unit
receive an event from a fifo and connect to the corresponding service, or to create it if it doesn't exit
eventdescriptor : Name of input pipe,in descriptor
outdescriptor : Name of output pipe, out descriptor
val mkentry : string -> string -> 'a -> string -> Globals.result
Make a pair of fifo entries
val openentry : string -> string * string -> 'a -> unit
Open fifos for a session. Will shutdown vsys if the fifos don't exist
val sigchld_handle : 'a -> unit
val initialize : unit -> unit