5个版本 (3个破坏性更新)
0.4.1 | 2024年2月28日 |
---|---|
0.4.0 |
|
0.3.0 | 2022年9月17日 |
0.2.0 | 2022年4月21日 |
0.1.1 | 2020年2月8日 |
#60 在 操作系统 中
62,891 每月下载量
在 137 个crate中使用 (5个直接使用)
18KB
328 行
named-lock
此crate提供了一个简单且跨平台的命名锁实现。您可以使用它来锁定进程之间的部分。
示例
use named_lock::NamedLock;
use named_lock::Result;
fn main() -> Result<()> {
let lock = NamedLock::create("foobar")?;
let _guard = lock.lock()?;
// Do something...
Ok(())
}
实现
在UNIX上,这通过使用文件和 flock
实现。创建的锁文件路径将是 $TMPDIR/<name>.lock
,或者如果未设置 TMPDIR
环境变量,则为 /tmp/<name>.lock
。
在Windows上,这通过使用 CreateMutexW
创建命名互斥锁来实现。
依赖项
~0.7–37MB
~555K SLoC