]> git.lizzy.rs Git - rust.git/blob - src/test/ui/atomic-access-bool.rs
Merge pull request #1 from rust-lang/master
[rust.git] / src / test / ui / atomic-access-bool.rs
1 // run-pass
2
3 #![allow(stable_features)]
4 #![feature(atomic_access)]
5 use std::sync::atomic::AtomicBool;
6 use std::sync::atomic::Ordering::*;
7
8 static mut ATOMIC: AtomicBool = AtomicBool::new(false);
9
10 fn main() {
11     unsafe {
12         assert_eq!(*ATOMIC.get_mut(), false);
13         ATOMIC.store(true, SeqCst);
14         assert_eq!(*ATOMIC.get_mut(), true);
15         ATOMIC.fetch_or(false, SeqCst);
16         assert_eq!(*ATOMIC.get_mut(), true);
17         ATOMIC.fetch_and(false, SeqCst);
18         assert_eq!(*ATOMIC.get_mut(), false);
19         ATOMIC.fetch_nand(true, SeqCst);
20         assert_eq!(*ATOMIC.get_mut(), true);
21         ATOMIC.fetch_xor(true, SeqCst);
22         assert_eq!(*ATOMIC.get_mut(), false);
23     }
24 }