Add test test_weak_count_locked
This commit is contained in:
parent
49edaf14fd
commit
8416713240
1 changed files with 19 additions and 0 deletions
|
@ -1501,6 +1501,25 @@ mod tests {
|
||||||
assert!(Arc::ptr_eq(&five, &same_five));
|
assert!(Arc::ptr_eq(&five, &same_five));
|
||||||
assert!(!Arc::ptr_eq(&five, &other_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")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue