val add_slow_task : t ‑> (unit ‑> unit) ‑> unit
slow_tasks
is a list of functions that should be called rougly every second while
the library is in use. The time-since-we-last-did-slow-tasks is checked on every call
to now
and maybe_do_slow_tasks
below. add_slow_task
adds one more slow task.
val now : t ‑> reluctance:int ‑> unit ‑> Core.Time_ns.t
reluctance
is higher if we don't want to do 'slow tasks' / don't want a potential
300ns spike.
We _really_ don't want this in Group.Point.at
s and Delta_probe.start
s
(reluctance:4) since the spike would be included in the calculation of a delta. We'd
rather not on Timer.record
s (r:3) since they are more liable to be in the middle of
something performance sensitive. We're slightly more happy to calibrate after a
Group.reset
(r:2), but ideally want to calibrate on a call to safe_to_delay
(r:1;
lowest).
Here t
specifies the kind of slow tasks to run if the reluctance has been overcome.
val maybe_do_slow_tasks : t ‑> reluctance:int ‑> unit