use horde::collect;
use std::sync::Arc;
use std::sync::Mutex;
#[test]
fn free_single_thread() {
let free = Arc::new(Mutex::new(false));
let free2 = free.clone();
unsafe {
collect::defer_unchecked(move || {
*free2.lock().unwrap() = true;
});
}
collect::collect();
assert_eq!(*free.lock().unwrap(), true);
collect::pin(|_| ());
let free = Arc::new(Mutex::new(false));
let free2 = free.clone();
unsafe {
collect::defer_unchecked(move || {
*free2.lock().unwrap() = true;
});
}
collect::collect();
assert_eq!(*free.lock().unwrap(), true);
}