package vchan
Library
Module
Module type
Parameter
Class
Class type
an identifier for a source of events. Ports are allocated by calls to listen
, then exchanged out-of-band (typically by xenstore) and finally calls to connect
creates a channel between the two domains. Events are send and received over these channels.
val sexp_of_port : port -> Ppx_sexp_conv_lib.Sexp.t
val string_of_port : port -> string
val sexp_of_channel : channel -> Ppx_sexp_conv_lib.Sexp.t
an event notification received from a remote domain. Events contain no data and may be coalesced. Domains which are blocked will be woken up by an event.
val sexp_of_event : event -> Ppx_sexp_conv_lib.Sexp.t
val initial : event
represents an event which 'fired' when the program started
recv channel event
blocks until the system receives an event newer than event
on channel channel
. If an event is received while we aren't looking then this will be remembered and the next call to after
will immediately unblock. If the system is suspended and then resumed, all event channel bindings are invalidated and this function will fail with Generation.Invalid
val send : channel -> unit
send channel
sends an event along channel
, to another domain which will be woken up
listen domid
allocates a fresh port and event channel. The port may be supplied to connect
val close : channel -> unit
close channel
closes this side of an event channel