sig
  val blocking : bool
  val multiplier : int
  val timeout : ms:int -> (unit -> bool) -> unit
  val idle : prio:int -> (unit -> bool) -> unit
end