sync_threads/
sync_threads.rs

1use std::time::{Duration, Instant};
2
3use minuteurs::Deadline;
4
5/* ---------- */
6
7fn main() {
8    let mut deadline = Deadline::repeat(Duration::from_secs(1));
9    let now = Instant::now();
10
11    let thread1 = std::thread::spawn(move || {
12        for _ in 0..10 {
13            deadline.wait();
14            let elapsed = now.elapsed();
15            println!("thread1 ticked at {elapsed:?}",)
16        }
17    });
18
19    let thread2 = std::thread::spawn(move || {
20        for _ in 0..10 {
21            deadline.wait();
22            let elapsed = now.elapsed();
23            println!("thread2 ticked at {elapsed:?}",)
24        }
25    });
26
27    let _ = thread1.join();
28    let _ = thread2.join();
29}