Ephemeron.S
The output signature of the functors K1.Make
and K2.Make
. These hash tables are weak in the keys. If all the keys of a binding are alive the binding is kept, but if one of the keys of the binding is dead then the binding is removed.
Propose the same interface as usual hash table. However since the bindings are weak, even if mem h k
is true, a subsequent find h k
may raise Not_found
because the garbage collector can run between the two.
Moreover, the table shouldn't be modified during a call to iter
. Use filter_map_inplace
in this case.
val create : int -> 'a t
val clear : 'a t -> unit
val reset : 'a t -> unit
val length : 'a t -> int
val stats : 'a t -> Hashtbl.statistics
val clean : 'a t -> unit
remove all dead bindings. Done automatically during automatic resizing.
val stats_alive : 'a t -> Hashtbl.statistics
same as Hashtbl.SeededS.stats
but only count the alive bindings