5F7NROZAWXVVAHQH7P55L5WUTZ6YJ3SFPWCMJSTEOXAF3ULFK7RAC
UM7DFUYLW4HSMBUDZY3R6ZNJRSX2E75C4DYV3MJAU57EUCGE6JLAC
LSRQCHOX2IW72XT5S4XAF4MCCXADODHVIA3UCHYRJGRSQEPFMULAC
CITEDKPB6MKVZUEYEDE5ZKTNVY35HCOAXKDPYG7YLLEOVFNMSRXQC
GZZOJ7ZUSBPI3HXIV5UCFNMCDAMZPPLISY2UDV73FDN74HZ3AWJAC
3LI5FAF5ULXOWBMTG4XCUOMUPVROSFDY6FWGE574OH4JGPMOPNVAC
use std::sync::{Arc, Mutex};
use std::sync::atomic::AtomicBool; use std::sync::atomic::Ordering::SeqCst; use std::sync::Arc;
use std::sync::atomic::AtomicBool;
use std::sync::atomic::Ordering::SeqCst;
use std::sync::Arc;
struct HasDrop(Box<Arc<Mutex<bool>>>);
struct HasDrop(Arc<AtomicBool>);
let mut has_dropped = self.0.lock().unwrap(); assert!(!*has_dropped); *has_dropped = true;
let mut has_dropped = self.0.lock().unwrap();
assert!(!*has_dropped);
*has_dropped = true;
let has_dropped = self.0.swap(true, SeqCst); assert!(!has_dropped);
let has_dropped = self.0.swap(true, SeqCst);
assert!(!has_dropped);
let has_dropped = Arc::new(Mutex::new(false));
let has_dropped = Arc::new(AtomicBool::new(false));
drop(Error::from(HasDrop(Box::new(has_dropped.clone()))));
drop(Error::from(HasDrop(has_dropped.clone())));
assert!(*has_dropped.lock().unwrap());
assert!(has_dropped.load(SeqCst));