Module lock

Source
Expand description

File-based locking using flock(2).

You must start with an UnlockedFile.

let lock_dir = tempdir::TempDir::new("locks")?;
let mut lock = UnlockedFile::try_from(lock_dir.path().join("foo").as_path())?;
let lock = lock.lock_shared()?;
let lock = lock.lock_exclusive()?;
let lock = lock.unlock()?;

Dropping a LockedFileShared or LockedFileExclusive drops their locks too, by virtue of dropping the File they each wrap, so there’s no need to call unlock unless you prefer to be explicit.

Structs§

LockedFileExclusive
LockedFileShared
UnlockedFile