package lwt
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=6d679ec2f33897675066d4c58c1d57d84045727263c16279b23c3a9ce13fb3f0
md5=2ce7827948adc611319f9449e4519070
doc/lwt.unix/Lwt_main/index.html
Module Lwt_main
Main loop and event queue
This module controls the ``main-loop'' of Lwt.
val run : 'a Lwt.t -> 'a
run p
calls the Lwt scheduler repeatedly until p
resolves, and returns the value of p
if it is fulfilled. If p
is rejected with an exception, that exception is raised.
Every native or bytecode program that uses Lwt should always use this function for evaluating a promise at the top level (such as its main function or main loop), otherwise promises that depend on I/O operations will not be resolved.
Example:
let main () = Lwt_io.write_line Lwt_io.stdout "hello world"
let () = Lwt_main.run @@ main ()
When targeting JavaScript, Lwt_main.run
is not available, but neither it's necessary since the JS environment automatically takes care of the I/O considerations.
Note that you should avoid using run
inside threads
- The calling threads will not resume before
run
returns. - Successive invocations of
run
are serialized: an invocation ofrun
will not terminate before all subsequent invocations are terminated.
Note also that it is not safe to call run
in a function registered with Pervasives.at_exit
, use the at_exit
function of this module instead.
val yield : unit -> unit Lwt.t
yield ()
is a threads which suspends itself and then resumes as soon as possible and terminates.
module type Hooks = sig ... end
Hook sequences. Each module of this type is a set of hooks, to be run by Lwt at certain points during execution. See modules Enter_iter_hooks
, Leave_iter_hooks
, and Exit_hooks
.
module Enter_iter_hooks : Hooks with type 'return_value kind = 'return_value
Hooks, of type unit -> unit
, that are called before each iteration of the Lwt main loop.
module Leave_iter_hooks : Hooks with type 'return_value kind = 'return_value
Hooks, of type unit -> unit
, that are called after each iteration of the Lwt main loop.
module Exit_hooks : Hooks with type 'return_value kind = 'return_value Lwt.t
Promise-returning hooks, of type unit -> unit Lwt.t
, that are called at process exit. Exceptions raised by these hooks are ignored.
val enter_iter_hooks : (unit -> unit) Lwt_sequence.t
val leave_iter_hooks : (unit -> unit) Lwt_sequence.t
val exit_hooks : (unit -> unit Lwt.t) Lwt_sequence.t
val at_exit : (unit -> unit Lwt.t) -> unit
Lwt_main.at_exit hook
is the same as ignore (Lwt_main.Exit_hooks.add_first hook)
.