Picos_htblLock-free hash table.
🏎️ Single key reads with this hash table are actually wait-free rather than just lock-free. Internal resizing automatically uses all the threads that are trying to write to the hash table.
First-class module type abbreviation.
val create : ?hashed_type:'k hashed_type -> unit -> ('k, 'v) tcreate ~hashed_type:(module Key) () creates a new empty lock-free hash table.
The optional hashed_type argument can be used to specify the equal and hash operations on keys. Slow polymorphic equality (=) and slow polymorphic hash are used by default.
val find_exn : ('k, 'v) t -> 'k -> 'vfind_exn htbl key returns the current binding of key in the hash table htbl or raises Not_found if no such binding exists.
val mem : ('k, 'v) t -> 'k -> boolmem htbl key determines whether the hash table htbl has a binding for the key.
val try_add : ('k, 'v) t -> 'k -> 'v -> booltry_add htbl key value tries to add a new binding of key to value to the hash table htbl. Returns true on success and false in case the hash table already contained a binding for key.
val try_remove : ('k, 'v) t -> 'k -> booltry_remove htbl key tries to remove a binding of key from the hash table htbl. Returns true on success and false in case the hash table did not contain a binding for key.
val remove_exn : ('k, 'v) t -> 'k -> 'vremove_exn htbl key tries to remove a binding of key from the hash table htbl and return it or raise Not_found if no such binding exists.
val remove_all : ('k, 'v) t -> ('k * 'v) Stdlib.Seq.tremove_all htbl removes all bindings from the hash table htbl and returns them as an association sequence.
🐌 This is a linear time operation.
val to_seq : ('k, 'v) t -> ('k * 'v) Stdlib.Seq.tto_seq htbl takes a snapshot of the bindings in the hash table and returns them as an association sequence.
🐌 This is a linear time operation.