Module Lock_file_async.Flock

type t

Nfs has analogues of functions in Lock_file.Flock; see there for documentation. In addition to adding Deferreds, this module adds functions that operate in the Deferred.Or_error.t monad.

val lock_exn : lock_path:string -> [ `Somebody_else_took_it | `We_took_it of t ] Async.Deferred.t
val lock : lock_path:string -> [ `Somebody_else_took_it | `We_took_it of t ] Async.Deferred.Or_error.t
val unlock_exn : t -> unit Async.Deferred.t
val unlock : t -> unit Async.Deferred.Or_error.t
val wait_for_lock_exn : ?⁠abort:unit Async.Deferred.t -> lock_path:string -> unit -> t Async.Deferred.t

wait_for_lock_exn ?abort ~lock_path () Wait for the lock, giving up once abort becomes determined

val wait_for_lock : ?⁠abort:unit Async.Deferred.t -> lock_path:string -> unit -> t Async.Deferred.Or_error.t

See wait_for_lock_exn