#timer #callback #mio #mio-extra #timer-wheel

hjul

基于 mio-extra 的简单高效的定时器抽象。每个定时器都关联一个回调函数,当定时器到期时执行,定时器可以被停止和重置,在这种情况下回调可能会多次执行。主要的应用场景是定时器的最大持续时间有限(例如最多10分钟),并且需要频繁取消和重新启动。

6 个版本

0.2.2 2020年5月22日
0.2.1 2019年11月21日
0.2.0 2019年9月22日
0.1.2 2019年8月26日

#38 in #mio

Download history 34/week @ 2024-03-31 35/week @ 2024-04-07 31/week @ 2024-04-14 48/week @ 2024-04-21 13/week @ 2024-04-28 20/week @ 2024-05-05 40/week @ 2024-05-12 17/week @ 2024-05-19 8/week @ 2024-05-26 55/week @ 2024-06-02 20/week @ 2024-06-09 24/week @ 2024-06-16 31/week @ 2024-06-23 3/week @ 2024-06-30 8/week @ 2024-07-07 11/week @ 2024-07-14

每月下载量55
用于 greenie

MIT 许可协议

16KB
251 代码行(不含注释)

Stable Rust CI Status Beta Rust CI Status Nightly Rust CI Status

Hjul

Hjul 是对 mio-extra 定时器的一个薄包装。示例用法

use hjul::Runner;
use std::thread;
use std::time::Duration;

let runner = Runner::new(Duration::from_millis(100), 100, 1024);
let timer = runner.timer(|| println!("fired"));

timer.start(Duration::from_millis(200));

// wait for timer to fire
thread::sleep(Duration::from_millis(500));

// start the timer again
timer.start(Duration::from_millis(200));

// stop timer immediately
timer.stop();

// start the timer again
timer.start(Duration::from_millis(200));

// timer is stopped when it goes out of scope

完整文档请参阅 docs.rs/hjul

依赖关系

~0.8–1.1MB
~18K SLoC