package devkit
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=a39dbbce04bd5562a9b4443daf39c582
sha512=b10104b61384b2151521b785e7f3c3250134c75eae09b42cad69bc4a22a9a5e429beb891ee87cedf376c23d9c40f09d3f71c3fd48aa35df490c0f69dc17f3242
doc/devkit.core/Devkit_core/Lwt_util/index.html
Module Devkit_core.Lwt_utilSource
Various utilities for use with Lwt.
timely_loop' ?immediate period f run f every period seconds; run immediately if immediate is true.
val timely_loop :
?immediate:bool ->
?wait:unit Lwt.t ->
Time.t ->
(unit -> unit Lwt.t) ->
unit Lwt.ttimely_loop' ?immediate ?wait period f run f every period seconds; run immediately if immediate is true; stop when wait thread terminates.
ensure_order t1 t2 cancel t1 when t2 terminates.
suppress_exn name cleanup t wait for t to terminate, suppress any exception, and call cleanup () afterwards.
same as Lwt.async but also cancels task on Daemon.ShouldExit
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).