1use std::{
2 sync::{atomic::AtomicUsize, Arc},
3 thread::sleep,
4 time::Duration,
5};
6
7use std::sync::atomic::Ordering::SeqCst;
8
9use swnb_timer::Timer;
10
11fn main() {
12 let timer = Timer::new();
13 let count: Arc<AtomicUsize> = Default::default();
14 let count_clone = count.clone();
15 let _ = timer.set_interval(
17 move || {
18 count_clone.fetch_add(1, SeqCst);
19 println!("run callback success");
20 },
21 Duration::from_secs(2),
22 );
23
24 sleep(Duration::from_secs(5));
25
26 assert_eq!(count.load(SeqCst), 2);
27}