This file is indexed.

/usr/lib/ocaml/equeue/uq_lwt.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
61
62
63
64
65
66
67
68
69
70
(* $Id$ *)

(** Compatibility with [Lwt] *)

(** Lwt is another library for event-driven programming. Here are some
    helpers for running Lwt code on top of Ocamlnet event queues.

    This is for Lwt-2.3 or better.

    See also the comments in {!Equeue_howto.lwt}.
 *)

(** Adapter for turning an Ocamlnet [event_system] into an Lwt [Lwt_engine.t].

    Use it like:

    {[
       class lwt_engine esys =
       object
         inherit Lwt_engine.abstract
         inherit Uq_lwt.lwt_backend esys
       end
    ]}

    (We've intentionally left out {b this} definition to avoid any 
    build dependency on Lwt. Also note that [Lwt_engine] is in the
    package [lwt.unix].)

    Now, activate this Lwt engine (event loop):

    {[
      Lwt_engine.set (new lwt_engine esys)
    ]}

    Note that Lwt can only deal with one event loop at a time, and the
    new event loop will be used for all Lwt code.

    It is, unfortunately, necessary that you use the Lwt main loop
    ([Lwt_main.run] or [Lwt_unix.run]), because otherwise some hook
    functions are never executed (and execution will hang).

    For an example, see [tests/equeue/manual/relay.ml] in the distribution
    tarball.

    Netplex users: If you want to use [lwt_engine] for driving the
    event loop of the container, you can do so by overriding the
    processor hooks [container_event_system] and [container_run], e.g.

    {[
    method container_event_system () =
      let esys = Unixqueue.create_unix_event_system() in
      Lwt_engine.set (new lwt_engine esys);
      esys

    method container_run esys =
      Lwt_main.run <something>
    ]}

    The Lwt thread [<something>] must at least run until the container is
    shut down. You can catch this moment by also defining the [shutdown]
    method.
 *)
class lwt_backend : Unixqueue.event_system ->
  object
      method iter : bool -> unit
      method private cleanup : unit
      method private register_readable : Unix.file_descr -> (unit -> unit) -> unit Lazy.t
      method private register_writable : Unix.file_descr -> (unit -> unit) -> unit Lazy.t
      method private register_timer : float -> bool -> (unit -> unit) -> unit Lazy.t
    end