#watchdog #deadlock #threading

vigil

提供用于检测死锁/活锁/饥饿等问题的存活性检查看门狗

3 个不稳定版本

0.2.1 2023年1月19日
0.2.0 2018年5月11日
0.1.0 2018年5月11日

#514并发

每月 下载 28

Apache-2.0/MIT

11KB
171

Vigil

Crates.io - Vigil Build Status License: MIT License: Apache-2.0

Rust 服务的软件看门狗库。

文档

https://docs.rs/vigil/

用法

从 crates.io 安装,将 vigil 添加到您的 Cargo.toml

[dependencies]
vigil = "0.1"

现在您可以创建一个 Vigil 实例,被监视的代码必须不时通知。如果被监视的代码错过太多的通知滴答,将触发预编程的回调,让您处理这种情况(收集诊断信息、发出警报、取消停滞的任务,甚至杀死整个进程)。

let vigil = Vigil::create(10_000,
                          Some(|| warn!("Watched code missed a watchdog check"),
                          Some(|| error!("Watched code missed multiple watchdog checks!"),
                          Some(|| { error!("Deadlock detected, exiting"); std::process::exit(101));

loop {
  do_work();
  vigil.notify();
}

依赖项

~87KB