6 releases
0.2.2 | Mar 17, 2022 |
---|---|
0.2.1 | Mar 17, 2022 |
0.1.2 | Mar 16, 2022 |
#11 in #cross-process
Used in proclock
8KB
119 lines
Developed with ❤️ by Tabnine
PLEASE NOTE: THIS CRATE HAS BEEN RENAMED
It used to be proclock
, but it's been renamed to proc-lock.
Please update your dependencies to receive newer versions.
Proclock
A simple cross-process locking API.
Quick Start
Installation
In your Cargo.toml
file, add:
[dependencies]
proclock = "*"
Using the API directly
use proclock::{lock, LockPath};
let lock_path = LockPath::Tmp("my_lock.lock");
let guard = lock(&lock_path).unwrap();
// Until `guard` is dropped, this code section is atomic across multiple processes.
// ...
drop(guard);
Using macros
use proclock::proclock;
fn main() {
// A lock will be acquired at the beginning of this function, and will be released at the end.
a_sensitive_function();
}
#[proclock(name = "my_lock.lock")]
fn a_sensitive_function() {}
Current status
⚠️This crate is in its early stages, breaking changes are expected in upcoming releases.
Changelist
- 0.2.1 - Add a notice about renaming the crate
- 0.2.0 - [breaking changes] Stop supporting non-blocking macro api
Dependencies
~2MB
~46K SLoC