/usr/lib/ocaml/equeue/uq_libevent.mli is in libocamlnet-ocaml-dev 4.1.2-3.
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 50 51 52 53 54 55 56 57 58 59 60 | (* $Id$ *)
(** Use Libevent as event loop *)
(** This gives (experimental) support for using libevent as event loop.
To do so, you also need Maas-Maarten Zeeman's bindings for libevent,
ocaml-event. (N.B. The current name, changed several times, is now
liboevent.)
Restrictions:
- ocaml-event is not thread-safe
- There can only be one instance of the event loop at a time
- It is not supported to wait for out of band data
- Signals do not stop the event loop. As a consequence, signals
are delayed until the next event occurs.
*)
module type LIBOEVENT = sig
type event
type event_flags =
TIMEOUT
| READ
| WRITE
| SIGNAL
type event_callback = Unix.file_descr -> event_flags -> unit
val create : unit -> event
val set : event ->
Unix.file_descr -> event_flags list -> persist:bool -> event_callback ->
unit
val add : event -> float option -> unit
val del : event -> unit
type loop_flags =
ONCE
| NONBLOCK
val loop : loop_flags -> unit
end
module type POLLSET = sig
val create_pollset : unit -> Netsys_pollset.pollset
val create_event_system : unit -> Unixqueue.event_system
end
module Make(L:LIBOEVENT) : POLLSET
(** Instantiate this module. Just do
{[
let P = Make(Liboevent)
]}
and then call [P.create_pollset()] to create a [pollset]
object, or [P.create_event_system()] to create an [event_system].
(N.B. This functor saves Ocamlnet from being directly dependent
on Liboevent.)
*)
|