2 #![allow(unreachable_code)]
4 use std::sync::atomic::{AtomicBool, Ordering, AtomicUsize};
10 println!("{}", self.0);
11 FOO[self.0].store(true, Ordering::Relaxed);
12 assert_eq!(BAR.fetch_sub(1, Ordering::Relaxed), self.0);
16 const A: Print = Print(0);
17 const B: Print = Print(1);
19 static FOO: [AtomicBool; 3] =
20 [AtomicBool::new(false), AtomicBool::new(false), AtomicBool::new(false)];
21 static BAR: AtomicUsize = AtomicUsize::new(2);
25 std::mem::forget(({ A }, B, Print(2), break));
27 for (i, b) in FOO.iter().enumerate() {
28 assert!(b.load(Ordering::Relaxed), "{} not set", i);
30 assert_eq!(BAR.fetch_add(1, Ordering::Relaxed), usize::max_value());