Hive.Scheduler

hive · API reference

Cancellable one-shot and periodic timers.

Timers over the Eio clock: one-shot and periodic, cancellable.

type timer

A cancellable timer handle.

val after : 
  sw:Eio.Switch.t ->
  clock:_ Eio.Time.clock ->
  float ->
  (unit -> unit) ->
  timer

after ~sw ~clock delay fn runs fn once after delay seconds, unless cancelled first.

ocaml]
let timer =
  Hive.Scheduler.after ~sw ~clock 1.0 (fun () -> traceln "one second")
in
Hive.Scheduler.cancel timer
val every : 
  sw:Eio.Switch.t ->
  clock:_ Eio.Time.clock ->
  ?immediate:bool ->
  float ->
  (unit -> unit) ->
  timer

every ~sw ~clock interval fn runs fn every interval seconds until cancelled. immediate (default false) also fires at t=0.

ocaml]
let heartbeat =
  Hive.Scheduler.every ~sw ~clock ~immediate:true 5.0 (fun () ->
    traceln "heartbeat")
val cancel : timer -> unit

Stop the timer. Idempotent; a no-op after a one-shot has fired.