1use core::time::Duration;
2use std::time::Instant;
3
4const SPAWNER_SIZE: usize = 2; static TEST_EPOCH: std::sync::OnceLock<Instant> = std::sync::OnceLock::new();
6
7fn get_platform_time() -> Duration {
8 let epoch = TEST_EPOCH.get_or_init(Instant::now);
9 Instant::now().duration_since(*epoch)
10}
11
12fn main() {
13 let spawner: ato::Spawner<SPAWNER_SIZE> = ato::Spawner::default();
14 ato::spawn_task!(spawner, res, {
15 let start = Instant::now();
16 ato::sleep(Duration::from_millis(200), get_platform_time).await;
17 let elapsed = Instant::now().duration_since(start);
18 println!(
19 "Task 0 completed after {:?} milliseconds",
20 elapsed.as_millis()
21 );
22 });
23 res.unwrap();
24
25 spawner.run_until_all_done().unwrap();
26}