Module Tick

module Tick: sig .. end
Best-effort monotonic ticks for MirageOS.

Release 0.0.0-3-g591a88a - Daniel B├╝nzli <daniel.buenzl i@erratique.ch>



Base MirageOS signatures

The following signatures are assumed to be part of MirageOS's signatures.

module type PCLOCK = sig .. end
The type for POSIX time clocks.
module type MCLOCK = sig .. end
The type for monotonic time clocks.
module type MTICK = sig .. end
The type for monotonic clock ticks.
module type LIFECYCLE = sig .. end
The type for program life cycle events.
module type KV = sig .. end
The type for mutable key-value stores.

Tick watchers

The following add a little bit more features to the base OS' monotonic ticks.

module type WATCHER = sig .. end
The type for clock tick watchers.
module type WATCHER_FUN = sig .. end
The type for clock tick watchers with triggers as functions.

Unreliable ticking


module Make_unreliable: 
functor (M : MCLOCK) ->
functor (MT : MTICK) -> WATCHER_FUN
Unreliable, monotonic, clock tick watchers.

Best-effort ticking


module Make_suspension_resistant: 
functor (P : PCLOCK) ->
functor (M : MCLOCK) ->
functor (MT : MTICK) ->
functor (E : LIFECYCLE) -> WATCHER_FUN
Best-effort, program suspension resistant, monotonic, clock tick watchers.
module type PERSISTENT_TRIGGER = sig .. end
The type for persistent triggers.
module Make_poweroff_resistant: 
functor (P : PCLOCK) ->
functor (M : MCLOCK) ->
functor (MT : MTICK) ->
functor (E : LIFECYCLE) ->
functor (T : PERSISTENT_TRIGGER) ->
functor (Kv : KV) -> WATCHER with type trigger = T.t
Best-effort, program poweroff resistant, monotonic, clock tick watchers.