2 个版本

使用旧的 Rust 2015

0.3.6 2024 年 3 月 17 日
0.3.5 2024 年 1 月 13 日

#1037 in 文件系统

28 每月下载量
用于 wei-scheduler

MIT 许可证

12KB
196 代码行

单实例

Crates.io Build Status

单实例提供了一个单例 API 来检查是否有其他正在运行的实例。

详情

在 Windows 上,init SingleInstance 会创建一个名为给定 &str 的互斥锁,然后通过调用 GetLastError 检查错误代码。在 Linux 上,init 将使用给定名称绑定抽象的 Unix 域套接字。在 macOS 上,init 将创建或打开一个路径为给定 &str 的文件,然后调用 flock 在打开的文件上应用咨询锁。

[dependencies]
single-instance = "0.3"

示例

extern crate single_instance;

use single_instance::SingleInstance;

fn main() {
    {
        let instance_a = SingleInstance::new("whatever").unwrap();
        assert!(instance_a.is_single());
        let instance_b = SingleInstance::new("whatever").unwrap();
        assert!(!instance_b.is_single());
    }
    let instance_c = SingleInstance::new("whatever").unwrap();
    assert!(instance_c.is_single());
}

依赖项

~3MB
~61K SLoC