Module Brr.Time

Monotonic time.

Time span

type span = float

The type for time spans, in seconds. FIXME move to ms.

Passing time

val elapsed : unit -> span

elapsed () is the number of seconds elapsed since the beginning of the program.

Tick events

val tick : span -> span Note.event

tick span is an event that occurs once in span seconds with the value span - span' where span' is the actual delay performed by the system.

Note. Since the system may introduce delays you cannot assume that two different calls to tick will necessarily yield two non-simultaneous events.

val delay : span -> (unit -> unit) -> unit

delay span f calls f after span seconds.

Counters

type counter

The type for time counters.

val counter : unit -> counter

counter () is a counter counting time from call time on.

val counter_value : counter -> span

counter_value c is the current counter value in seconds.

Pretty printing time

val pp_s : Stdlib.Format.formatter -> span -> unit

pp_s ppf s prints s seconds in seconds.

val pp_ms : Stdlib.Format.formatter -> span -> unit

pp_ms ppf s prints s seconds in milliseconds.

val pp_mus : Stdlib.Format.formatter -> span -> unit

pp_mus ppf s prints s seconds in microseconds.