module Busy_pollers:sig..end
See Scheduler.add_busy_poller for the user-level interface.
type t
include Invariant.S
val create : unit -> tcreate () creates a new empty set.val is_empty : t -> bool
val add : t ->
(unit -> [ `Continue_polling | `Stop_polling of 'a ]) -> 'a Import.Deferred.tadd t f adds function f to the set t. f will run every time poll is called.
f runs with the same execution context that was in effect when add was called.
When poll is called and f returns `Stop_polling, the result of add becomes
determined and f is removed from the set. Also, if f raises, it is removed from
the set and the exception is sent to the monitor in effect when add was called,val poll : t -> unitpoll t runs every function in the set t.val sexp_of_t : t -> Sexplib.Sexp.tcreate () creates a new empty set.add t f adds function f to the set t. f will run every time poll is called.
f runs with the same execution context that was in effect when add was called.
When poll is called and f returns `Stop_polling, the result of add becomes
determined and f is removed from the set. Also, if f raises, it is removed from
the set and the exception is sent to the monitor in effect when add was called,poll t runs every function in the set t.