Skip to main content

custom_id_timer/
custom_id_timer.rs

1use lustre_executor::prelude::*;
2use std::sync::{Arc, Mutex};
3use std::time::Duration;
4
5fn main() {
6    let executor = Arc::new(Mutex::new(Executor::new().unwrap()));
7    let timer_data = executor.lock().unwrap().timer_data();
8    let start = std::time::Instant::now();
9
10    {
11        let mut exec = executor.lock().unwrap();
12        exec.spawn(Task::new(async move {
13            println!("Starting timer at {:?}", start.elapsed());
14            std::io::Write::flush(&mut std::io::stdout()).unwrap();
15            let timer = TimerFuture::new(Duration::from_millis(500), timer_data);
16            timer.await;
17            println!("Timer fired at {:?}", start.elapsed());
18        }));
19    }
20
21    executor.lock().unwrap().run();
22}