Module Core_gc.Expert.Alarm

module Alarm: sig .. end
A GC alarm calls a user function at the end of each major GC cycle.

type t 
val create : (unit -> unit) -> 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 -> unit
delete t will stop the calls to the function associated to t. Calling delete t again has no effect.
val sexp_of_t : t -> Sexplib.Sexp.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.

delete t will stop the calls to the function associated to t. Calling delete t again has no effect.