Scroll to navigation

Ephemeron.S(3o) OCamldoc Ephemeron.S(3o)


Ephemeron.S - The output signature of the functor Ephemeron.K1.Make and Ephemeron.K2.Make.

Module type

Module type Ephemeron.S


Module type S = sig end

The output signature of the functor Ephemeron.K1.Make and Ephemeron.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. ===

include Hashtbl.S

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

source: 2019-01-25