module Lock_file: Lock_file
val create : ?message:string ->
       ?close_on_exec:bool -> ?unlink_on_exit:bool -> string -> bool
create ?close_on_exec ?message path tries to create a file at path containing the
    text message, which defaults to the pid of the locking process.  It returns true on
    success, false on failure.  Note: there is no way to release the lock or the fd
    created inside!  It will only be released when the process dies. If close_on_exec is
    false, then the lock will not be released until children created via fork and exec
    also terminate. If not specified, close_on_exec=true.  Note that by default, the lock
    file is not cleaned up for you when the process exits. If you pass
    unlink_on_exit:true, an at_exit handler will be set up to remove the lock-file on
    program termination.
val create_exn : ?message:string ->
       ?close_on_exec:bool -> ?unlink_on_exit:bool -> string -> unit
create_exn ?message path is like create except that it throws an exception on
    failure instead of returning a boolean value
val blocking_create : ?message:string ->
       ?close_on_exec:bool -> ?unlink_on_exit:bool -> string -> unit
blocking_create t tries to create the lock. If another process holds the lock this
    function will wait until it is released.
val is_locked : string -> bool
is_locked path returns true when the file at path exists and is locked, false
    otherwise.
module Nfs: sig .. end
An implementation neutral NFS lock file scheme that relies on the atomicity of link
    over NFS (see NFS Illustrated, atomicity for more information).