A set of busy-poll functions.
See Scheduler.add_busy_poller for the user-level interface.
include sig ... end
val sexp_of_t : t ‑> Sexplib.Sexp.t
include Async_unix__.Import.Invariant.S with type t := t
val invariant : t Base__.Invariant_intf.inv
val is_empty : t ‑> bool
val add : t ‑> (unit ‑> [ `Stop_polling of 'a | `Continue_polling ]) ‑> 'a Async_unix__.Import.Deferred.t
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,