Module Lock.Make

Create a lock manager implementation.

Parameters

module K : Type.S

Signature

type t

The type for lock manager.

type key = K.t

The type for key to be locked.

val v : unit -> t

Create a lock manager.

val with_lock : t -> key -> (unit -> 'a Lwt.t) -> 'a Lwt.t

with_lock t k f executes f () while holding the exclusive lock associated to the key k.

val stats : t -> int