Library
Module
Module type
Parameter
Class
Class type
Direct style Picos
compatible interface to Lwt
for OCaml 5.
This basically gives you an alternative direct style interface to programming with Lwt
. All the scheduling decisions will be made by Lwt
.
ℹ️ This is a system independent interface to Lwt
. See Picos_lwt_unix
for a Unix
specific interface.
val await : 'a Lwt.t -> 'a
module type System = sig ... end
Signature for a module that Picos_lwt.run
requires for interoperating with the system that Lwt
runs on.
val run_fiber :
(module System) ->
Picos.Fiber.t ->
(Picos.Fiber.t -> unit) ->
unit Lwt.t
run_fiber (module System) fiber main
runs the main
program as the specified fiber
as a promise with Lwt
as the scheduler using the given System
module. In other words, the main
program will be run as a Lwt
promise or fiber.
ℹ️ Inside main
you can use anything implemented in Picos for concurrent programming. In particular, you only need to call run
with a System
module implementation at the entry point of your application.
⚠️ This may only be called on the main thread on which Lwt
runs.
run (module System) main
is equivalent to calling run_fiber
with a freshly created fiber and main
wrapped to capture the result of main
.
The optional forbid
argument defaults to false
and determines whether propagation of cancelation is initially allowed.