#![allow(unused_variables)] fn main() { use std::sync::Arc; let x = Arc::new(3); let y = Arc::clone(&x); let x_thread = std::thread::spawn(|| Arc::into_inner(x)); let y_thread = std::thread::spawn(|| Arc::into_inner(y)); let x_inner_value = x_thread.join().unwrap(); let y_inner_value = y_thread.join().unwrap(); assert!(matches!((x_inner_value, y_inner_value), (None, Some(3)) | (Some(3), None))); }