Expert.Alarm
A GC alarm calls a user function at the end of each major GC cycle.
val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
val create : (Base.Unit.t -> Base.Unit.t) -> t
create f
arranges for f
to be called at the end of each major GC cycle, starting with the current cycle or the next one. f
can be called in any thread, and so introduces all the complexity of threading. f
is called with Exn.handle_uncaught_and_exit
, to prevent it from raising, because raising could raise to any allocation or GC point in any thread, which would be impossible to reason about.
val delete : t -> Base.Unit.t
delete t
will stop the calls to the function associated to t
. Calling delete
t
again has no effect.