rust/tests/run-pass/atomic-access-bool.rs

20 lines
612 B
Rust
Raw Normal View History

use std::sync::atomic::{AtomicBool, Ordering::*};
2017-03-14 07:05:51 -05:00
static mut ATOMIC: AtomicBool = AtomicBool::new(false);
2017-03-14 07:05:51 -05:00
fn main() {
unsafe {
assert_eq!(*ATOMIC.get_mut(), false);
ATOMIC.store(true, SeqCst);
assert_eq!(*ATOMIC.get_mut(), true);
ATOMIC.fetch_or(false, SeqCst);
assert_eq!(*ATOMIC.get_mut(), true);
ATOMIC.fetch_and(false, SeqCst);
assert_eq!(*ATOMIC.get_mut(), false);
ATOMIC.fetch_nand(true, SeqCst);
assert_eq!(*ATOMIC.get_mut(), true);
ATOMIC.fetch_xor(true, SeqCst);
assert_eq!(*ATOMIC.get_mut(), false);
}
}