2019-01-28 02:19:56 -06:00
|
|
|
use std::sync::atomic::{AtomicBool, Ordering::*};
|
2017-03-14 07:05:51 -05:00
|
|
|
|
2019-01-28 02:19:56 -06: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);
|
|
|
|
}
|
|
|
|
}
|