3 个稳定版本
3.0.0 | 2021年7月22日 |
---|---|
2.0.0 | 2021年7月19日 |
1.0.0 | 2021年7月15日 |
#962 在 并发
10KB
86 行
熔断器
一种可以在任何时间进行检查的等待单个信号的机制。
熔断器可以同步检查,并且只有在被燃烧后才会显示为已燃烧。它可以在未燃烧时被挂起,并且可以在任何时间进行克隆和使用,无需 mut
。
适用于退出条件和一次性的无负载通道。
- API 文档
- 支持 Async-std 和 Tokio。
use fuze::Fuze;
use async_std::task;
use std::time::Duration;
let f1 = Fuze::new();
let f2 = f1.clone();
task::block_on(async move {
println!("Halo!");
task::spawn(async move {
task::sleep(Duration::from_secs(1)).await;
f3.burn();
});
f2.wait().await;
println!("Adios!");
});
lib.rs
:
熔断器是可以在任何时间进行检查的等待单个信号的机制。
此 crate 包含 Async-std(默认)和 Tokio 实现
Async-std
fuze = "3.0.0"
Tokio
fuze = { version = "3.0.0", default-features = false, features = ["tokio"] }
两种实现可以共存(同时启用两个功能),API 是相同的,但顶层重导出将优先选择 async-std 版本。禁用两个功能将无法编译。
依赖关系
~5–18MB
~196K SLoC