create path creates a mutually exclusive lock file. The lock is held until the lock is released or this process ends.
Same as create path expect that try_create path returns None if the file is already locked by another process.
val unlock : t -> unitunlock t releases lock file t.