Module Picos_lwt

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

await promise awaits for the promise to resolve and returns the result.

⚠ī¸ This may only be called on the main thread on which Lwt runs from inside a fiber started through run.

module type System = sig ... end

Signature for a module that requires for interoperating with the system that Lwt runs on.

val run : ?forbid:bool -> (module System) -> (unit -> 'a) -> 'a Lwt.t

run (module System) main runs the main program implemented in Picos 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.

The optional forbid argument defaults to false and determines whether propagation of cancelation is initially allowed.

⚠ī¸ This may only be called on the main thread on which Lwt runs.