mirror of
https://git.proxmox.com/git/rustc
synced 2026-03-28 15:04:53 +00:00
27 lines
677 B
Rust
27 lines
677 B
Rust
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::<i32>().unwrap() == 10 - i);
|
|
break;
|
|
} else {
|
|
thread::sleep(Duration::from_millis(200));
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
thread::sleep(Duration::from_millis(1000));
|
|
}
|