Module Mavryk_stdlib_unix.Lwt_lock_file

Simple abstraction over Unix lockfiles

val try_with_lock : when_locked:(unit -> 'a Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> filename:string -> (unit -> 'a Mavryk_error_monad.Error_monad.tzresult Lwt.t) -> 'a Mavryk_error_monad.Error_monad.tzresult Lwt.t

try_with_lock ?close_on_exec ?unlink_on_exit ~when_locked ~filename f tries to take a lock on file filename and calls f if the lock was successfully taken. If the lock was previously taken, when_locked is called instead and f is ignored.

This function may fail with an I/O exception wrapped in the error monad if something unexpected happened.