5个版本 (3个破坏性更新)

0.4.1 2024年2月28日
0.4.0 2024年2月28日
0.3.0 2022年9月17日
0.2.0 2022年4月21日
0.1.1 2020年2月8日

#60操作系统

Download history · Rust 包仓库 12097/week @ 2024-04-08 · Rust 包仓库 14302/week @ 2024-04-15 · Rust 包仓库 15288/week @ 2024-04-22 · Rust 包仓库 13133/week @ 2024-04-29 · Rust 包仓库 14491/week @ 2024-05-06 · Rust 包仓库 17562/week @ 2024-05-13 · Rust 包仓库 17749/week @ 2024-05-20 · Rust 包仓库 17036/week @ 2024-05-27 · Rust 包仓库 16581/week @ 2024-06-03 · Rust 包仓库 17916/week @ 2024-06-10 · Rust 包仓库 18844/week @ 2024-06-17 · Rust 包仓库 19214/week @ 2024-06-24 · Rust 包仓库 13426/week @ 2024-07-01 · Rust 包仓库 15861/week @ 2024-07-08 · Rust 包仓库 16863/week @ 2024-07-15 · Rust 包仓库 16015/week @ 2024-07-22 · Rust 包仓库

62,891 每月下载量
137 个crate中使用 (5个直接使用)

MIT 许可证

18KB
328

named-lock

license crates.io docs

此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