use elsa::sync::*; use std::sync::Arc; use std::thread; use std::time::Duration; fn main() { let a = Arc::new(FrozenMap::new()); for i in 1..10 { let b = a.clone(); thread::spawn(move || { b.insert(i, i.to_string()); thread::sleep(Duration::from_millis(300)); loop { if let Some(opposite) = b.get(&(10 - i)) { assert!(opposite.parse::().unwrap() == 10 - i); break; } else { thread::sleep(Duration::from_millis(200)); } } }); } thread::sleep(Duration::from_millis(1000)); }