package devkit

  1. Overview
  2. Docs
Development kit - general purpose library

Install

dune-project
 Dependency

Authors

Maintainers

Sources

1.20261006.tar.gz
md5=a39dbbce04bd5562a9b4443daf39c582
sha512=b10104b61384b2151521b785e7f3c3250134c75eae09b42cad69bc4a22a9a5e429beb891ee87cedf376c23d9c40f09d3f71c3fd48aa35df490c0f69dc17f3242

doc/devkit.core/Devkit_core/Lwt_util/index.html

Module Devkit_core.Lwt_utilSource

Various utilities for use with Lwt.

Sourceval with_count : int ref -> 'a Lwt.t -> 'a Lwt.t
Sourceval timely : Time.t -> ('a -> unit Lwt.t) -> 'a -> unit Lwt.t
Sourceval timely_loop' : ?immediate:bool -> Time.t -> (unit -> unit Lwt.t) -> unit Lwt.t

timely_loop' ?immediate period f run f every period seconds; run immediately if immediate is true.

Sourceval timely_loop : ?immediate:bool -> ?wait:unit Lwt.t -> Time.t -> (unit -> unit Lwt.t) -> unit Lwt.t

timely_loop' ?immediate ?wait period f run f every period seconds; run immediately if immediate is true; stop when wait thread terminates.

Sourceval ensure_order : 'a Lwt.t -> 'b Lwt.t -> 'b Lwt.t

ensure_order t1 t2 cancel t1 when t2 terminates.

Sourceval suppress_exn : string -> (unit -> 'a Lwt.t) -> unit Lwt.t -> 'a Lwt.t

suppress_exn name cleanup t wait for t to terminate, suppress any exception, and call cleanup () afterwards.

Sourceval action : string -> ('a -> 'b Lwt.t) -> 'a -> 'b Lwt.t
Sourceval action_do : string -> (unit -> 'a Lwt.t) -> 'a Lwt.t
Sourceval async : (unit -> unit Lwt.t) -> unit

same as Lwt.async but also cancels task on Daemon.ShouldExit

Sourceval idle_check : interval:Time.duration -> (unit -> unit) * unit Lwt.t

idle_check ~interval is a pair (stamp,wait) where you use stamp: unit -> unit to indicate activity, and wait : unit Lwt.t is a promise that resolves if there's been no calls to stamp during an interval.

This is typically used to manage a background task (e.g., periodically fetching data from a remote source) based on whether there is ongoing activity (e.g., whether the data is being used in the UI).