package mtime

  1. Overview
  2. Docs
Monotonic wall-clock time for OCaml

Install

dune-project
 Dependency

Authors

Maintainers

Sources

mtime-2.1.0.tbz
sha512=a6619f1a3f1a5b32b7a9a067b939f94e6c66244eb90762d41f2cb1c9af852dd7d270fedb20e2b9b61875d52ba46e24af6ebf5950d1284b0b75b2fd2c380d9af3

doc/src/mtime.clock/mtime_clock.ml.html

Source file mtime_clock.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
(*---------------------------------------------------------------------------
   Copyright (c) 2017 The mtime programmers. All rights reserved.
   SPDX-License-Identifier: ISC
  ---------------------------------------------------------------------------*)

(* Raw interface *)

external elapsed_ns : unit -> int64 = "ocaml_mtime_clock_elapsed_ns"
external now_ns : unit -> int64 = "ocaml_mtime_clock_now_ns"
external period_ns : unit -> int64 option = "ocaml_mtime_clock_period_ns"

let () = ignore (elapsed_ns ()) (* Initalize elapsed_ns's origin. *)

(* Monotonic clock *)

let elapsed () = Mtime.Span.of_uint64_ns (elapsed_ns ())
let now () = Mtime.of_uint64_ns (now_ns ())
let period () = Mtime.Span.unsafe_of_uint64_ns_option (period_ns ())

(* Counters *)

type counter = int64
let counter = elapsed_ns
let count c = Mtime.Span.of_uint64_ns (Int64.sub (elapsed_ns ()) c)