use std::sync::atomic::{AtomicUsize, Ordering}; use std::thread::spawn; use iana_time_zone::get_timezone; const THREADS: usize = 10; const ITERATIONS: usize = 100_000; static COUNT: AtomicUsize = AtomicUsize::new(0); fn main() { let mut threads = Vec::with_capacity(THREADS); for _ in 0..THREADS { threads.push(spawn(|| { for _ in 0..ITERATIONS { get_timezone().unwrap(); COUNT.fetch_add(1, Ordering::Relaxed); } })); } for thread in threads { thread.join().unwrap(); } assert_eq!(COUNT.load(Ordering::SeqCst), THREADS * ITERATIONS); }