12345678910111213141516171819202122232425262728293031323334(** Busy pollers are added to the scheduler via [Scheduler.add_busy_poller]. Before each
Async cycle, the Scheduler will call each busy poller at least once, but possibly
multiple times if there's no Async work to do.
It is expected that a single call to [poll] does multiple iterations.
The busy poll loop is planned to run until [~deadline]. Pollers should use this
parameter to decide how many iterations to run.
In particular, if we know there is Async work to do, [~deadline] will be in the past
and pollers are requested to do a single iteration. *)openCoremoduletypeS=sigtypetvalpoll:t->deadline:Time_stamp_counter.t->intvalkind:tType_equal.Id.tendmoduletypeBusy_poller=sigmoduletypeS=Stypepoll_f:=deadline:Time_stamp_counter.t->intmoduleEmpty_poller:Swithtypet=unitmoduleExtra_poller:Swithtypet=poll_ftypepacked=T:(moduleSwithtypet='a)*'a->packedvalpoll:packed->deadline:Time_stamp_counter.t->intvalcreate:(moduleSwithtypet='a)->'a->packedvalcreate':poll_f->packedvalempty:packedend