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.