1 unstable release
0.2.0 | Jan 22, 2024 |
---|
#894 in Filesystem
8,579 downloads per month
Used in 30 crates
(via fslock-guard)
54KB
1.5K
SLoC
fslock-arti-fork
NOTE: This is a fork of the
fslock
crate for use by Arti. We are forking temporarily because we need https://github.com/brunoczim/fslock/pull/15 in order to implement file deletion safely.
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
https://brunoczim.github.io/fslock/fslock
[]
lib.rs
:
WARNING: v0.1.x is incompatible with v0.2.x onwards.
NOTE: This is a fork of the
fslock
crate for use by Arti. We are forking temporarily because we need https://github.com/brunoczim/fslock/pull/15 in order to implement file deletion safely.
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