example/
example.rs

1use std::time::Duration;
2
3fn main() {
4    let mut poll = mio::Poll::new().unwrap();
5    let mut events = mio::Events::with_capacity(2);
6
7    /* Timer */
8    let mut timer1 = timerfd_mio::TimerFd::new().unwrap();
9    timer1.set_timeout_interval(Duration::from_millis(600), Duration::from_millis(300)).unwrap();
10    poll.registry().register(&mut timer1, mio::Token(1), mio::Interest::READABLE).unwrap();
11
12    let mut timer2 = timerfd_mio::TimerFd::new().unwrap();
13    timer2.set_timeout_interval(Duration::from_millis(1000), Duration::from_millis(1000)).unwrap();
14    poll.registry().register(&mut timer2, mio::Token(2), mio::Interest::READABLE).unwrap();
15
16    loop {
17        poll.poll(&mut events, None).unwrap();
18
19        for event in &events {
20            if event.token() == mio::Token(1) {
21                timer1.read().unwrap();
22                println!("Timer 1 event");
23            }
24            if event.token() == mio::Token(2) {
25                // this function check timer overrun
26                timer2.read_and_check_overrun().unwrap();
27                println!("Timer 2 event");
28            }
29        }
30    }
31}