Monotonic time spans
The type for non-negative monotonic time spans. They represent the difference between two monotonic clock readings. If the platform's clock has nanosecond resolution the representation guarantees that the function Mtime_clock.elapsed
can measure up to approximatively 584 Julian year spans before silently rolling over (unlikely since this is in a single program run).
module Span : sig ... end
Monotonic time spans.
Monotonic timestamps
The type for monotonic timestamps relative to an indeterminate system-wide event (e.g. last startup). Their absolute value has no meaning but can be used for inter-process time correlation.
val to_uint64_ns : t -> int64
to_uint64_ns t
is t
as an unsigned 64-bit integer nanosecond timestamp. The absolute value is meaningless.
val of_uint64_ns : int64 -> t
to_uint64_ns t
is t
is an unsigned 64-bit integer nanosecond timestamp as a timestamp.
Warning. Timestamps returned by this function should only be used with other timestamp values that are know to come from the same operating system run.
Predicates
Arithmetic
span t t'
is the span between t
and t'
regardless of the order between t
and t'
.
add_span t s
is the timestamp s
units later than t
or None
if the result overflows.
sub_span t s
is the timestamp s
units earlier than t
or None
if overflows.
Pretty printing
val pp : Stdlib.Format.formatter -> t -> unit
pp ppf t
prints t
as an unsigned 64-bit integer nanosecond timestamp. Note that the absolute value is meaningless.
val dump : Stdlib.Format.formatter -> t -> unit
dump ppf t
prints an unspecified raw representation of t
on ppf
.