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