A weak pointer is a pointer to a heap block that does not cause the heap block to remain live during garbage collection. If the block would otherwise remain live, then then the weak pointer remains pointed to the block. If the block is collected, then the weak pointer is cleared.
include sig ... end
val sexp_of_t : ('a ‑> Sexplib.Sexp.t) ‑> 'a t ‑> Sexplib.Sexp.t
val create : ?thread_safe_after_cleared:(Core_kernel__.Import.unit ‑> Core_kernel__.Import.unit) ‑> Core_kernel__.Import.unit ‑> _ t
create
creates an empty weak pointer. One must set
it to point it to something.
Whenever t
is cleared by the garbage collector, thread_safe_after_cleared
is
called. This happens via a finalizer, so the usual trickiness of finalization
applies; see Gc.Expert
for more about finalizers.
val get : 'a t ‑> 'a Core_kernel__.Import.Heap_block.t Core_kernel__.Import.option
val set : 'a t ‑> 'a Core_kernel__.Import.Heap_block.t ‑> Core_kernel__.Import.unit