Up

Module Make (Time : Timing_wheel_intf.Timing_wheel_time) (Timing_wheel : Timing_wheel_intf.Timing_wheel with module Time := Time)

Parameters

Signature

type 'a t = 'a Timing_wheel.t
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t
type 'a timing_wheel = 'a t
type 'a t_now = 'a t
val sexp_of_t_now : ('a -> Sexplib.Sexp.t) -> 'a t_now -> Sexplib.Sexp.t
module Interval_num : sig .. end
module Alarm : sig .. end
val invariant : 'a Invariant_intf.inv -> 'a t Invariant_intf.inv
module Level_bits : sig .. end
module Config : sig .. end
val create : config:Config.t -> start:Time.t -> 'a t
val alarm_precision : 'a t -> Time.Span.t
val now : 'a t -> Time.t
val start : 'a t -> Time.t
val is_empty : 'a t -> bool
val length : 'a t -> int
val iter : 'a t -> f:('a Alarm.t -> unit) -> unit
val interval_num : 'a t -> Time.t -> Interval_num.t
val now_interval_num : 'a t -> Interval_num.t
val interval_num_start : 'a t -> Interval_num.t -> Time.t
val interval_start : 'a t -> Time.t -> Time.t
val advance_clock : 'a t -> to_:Time.t -> handle_fired:('a Alarm.t -> unit) -> unit
val fire_past_alarms : 'a t -> handle_fired:('a Alarm.t -> unit) -> unit
val alarm_upper_bound : 'a t -> Time.t
val add : 'a t -> at:Time.t -> 'a -> 'a Alarm.t
val add_at_interval_num : 'a t -> at:Interval_num.t -> 'a -> 'a Alarm.t
val mem : 'a t -> 'a Alarm.t -> bool
val remove : 'a t -> 'a Alarm.t -> unit
val reschedule : 'a t -> 'a Alarm.t -> at:Time.t -> unit
val reschedule_at_interval_num : 'a t -> 'a Alarm.t -> at:Interval_num.t -> unit
val clear : 'a t -> unit
val next_alarm_fires_at : 'a t -> Time.t option
val next_alarm_fires_at_exn : 'a t -> Time.t
module Priority_queue : sig .. end
val check_invariant : bool Pervasives.ref
val show_messages : bool Pervasives.ref