Add test test_weak_count_locked

This commit is contained in:
Jacques-Henri Jourdan 2017-07-20 01:59:01 +02:00
parent 49edaf14fd
commit 8416713240

View File

@ -1501,6 +1501,25 @@ mod tests {
assert!(Arc::ptr_eq(&five, &same_five));
assert!(!Arc::ptr_eq(&five, &other_five));
}
#[test]
#[cfg_attr(target_os = "emscripten", ignore)]
fn test_weak_count_locked() {
let mut a = Arc::new(atomic::AtomicBool::new(false));
let a2 = a.clone();
let t = thread::spawn(move || {
for _i in 0..1000000 {
Arc::get_mut(&mut a);
}
a.store(true, SeqCst);
});
while !a2.load(SeqCst) {
let n = Arc::weak_count(&a2);
assert!(n < 2, "bad weak count: {}", n);
}
t.join().unwrap();
}
}
#[stable(feature = "rust1", since = "1.0.0")]