A time source holds a time (possibly wall-clock time, possibly simulated time) and gives the ability to schedule Async jobs to run when that time advances.
There is a single wall-clock time source (returned by wall_clock ()
) that the Async
scheduler drives and uses for the Clock_ns
module. One can also create a
user-controlled time source via create
, and advance its clock as desired. This is
useful so that state machines can depend on a notion of time that is distinct from
wall-clock time.
module Deferred = Async_kernel__.Deferred1
module type Time_source : sig ... end