Mavryk_stdlib_unix.Lwt_lock_fileSimple 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.ttry_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.