11 releases
0.2.1 | Dec 20, 2021 |
---|---|
0.2.0 | Oct 25, 2021 |
0.1.8 | Sep 25, 2021 |
0.1.7 | Aug 10, 2021 |
0.1.4 | Jan 1, 2020 |
#56 in Filesystem
838,187 downloads per month
Used in 360 crates
(43 directly)
50KB
1K
SLoC
fslock
API to use files as a lock. Supports non-std crates by disabling feature
std
.
Types
Currently, only one type is provided: LockFile
. It does not destroy the
file after closed and behaviour on locking different file handles owned by
the same process is different between Unix and Windows, unless you activate the
multilock
feature, which enables the open_excl
method that locks files per
file descriptor/handle on all platforms.
Example
use fslock::LockFile;
fn main() -> Result<(), fslock::Error> {
let mut file = LockFile::open("mylock")?;
file.lock()?;
do_stuff();
file.unlock()?;
Ok(())
}
Docs on Master
lib.rs
:
API to use files as a lock. Supports non-std crates by disabling feature
std
.
Types
Currently, only one type is provided: LockFile
. It does not destroy the
file after closed. Locks are per-handle and not by per-process in any
platform. On Unix, however, under fork
file descriptors might be
duplicated sharing the same lock, but fork
is usually unsafe
in Rust.
Example
use fslock::LockFile;
fn main() -> Result<(), fslock::Error> {
let mut file = LockFile::open("testfiles/mylock.lock")?;
file.lock()?;
do_stuff();
file.unlock()?;
Ok(())
}
Dependencies
~220KB