#mio #timer #linux #timerfd

mio-timerfd

mio 对 Linux 的 timerfd 的支持

4 个版本

0.2.0 2020年5月2日
0.1.2 2019年10月5日
0.1.1 2019年9月23日
0.1.0 2019年9月17日

#1853 in 异步

Download history • Rust 包仓库 145/week @ 2024-03-14 • Rust 包仓库 261/week @ 2024-03-21 • Rust 包仓库 509/week @ 2024-03-28 • Rust 包仓库 419/week @ 2024-04-04 • Rust 包仓库 354/week @ 2024-04-11 • Rust 包仓库 312/week @ 2024-04-18 • Rust 包仓库 294/week @ 2024-04-25 • Rust 包仓库 163/week @ 2024-05-02 • Rust 包仓库 273/week @ 2024-05-09 • Rust 包仓库 220/week @ 2024-05-16 • Rust 包仓库 254/week @ 2024-05-23 • Rust 包仓库 534/week @ 2024-05-30 • Rust 包仓库 456/week @ 2024-06-06 • Rust 包仓库 280/week @ 2024-06-13 • Rust 包仓库 271/week @ 2024-06-20 • Rust 包仓库 217/week @ 2024-06-27 • Rust 包仓库

1,347 个月下载量
用于 pulseaudio

MIT 许可证

22KB
366

mio-timerfd

crates.io license build status

mio-timerfd 是 Linux 的 timerfd 功能的 mio 包装器。对于特定于 Linux 的软件,这可能是将异步定时器添加到代码中最简单(可能也是最有效,但我没有进行基准测试)的方法。

简单示例

let poll = Poll::new().unwrap();
let mut events = Events::with_capacity(1024);
let mut timer = TimerFd::new(ClockId::Monotonic).unwrap();
timer.set_timeout_interval(&Duration::from_millis(10)).unwrap();
poll.register(&timer, Token(0), Ready::readable(), PollOpt::edge())
	.unwrap();

// effectively sleeps the thread for 10ms
poll.poll(&mut events, None).unwrap();
assert!(timer.read().unwrap() == 1);

依赖项

~0.5–0.8MB
~14K SLoC