#![allow(deprecated)] | |
use super::*; | |
use crate::sync::Arc; | |
use crate::thread; | |
use crate::time::Duration; | |
#[test] | |
fn sleep() { | |
let mutex = Arc::new(SpinMutex::<i32>::default()); | |
let mutex2 = mutex.clone(); | |
let guard = mutex.lock(); | |
let t1 = thread::spawn(move || { | |
*mutex2.lock() = 1; | |
}); | |
thread::sleep(Duration::from_millis(50)); | |
assert_eq!(*guard, 0); | |
drop(guard); | |
t1.join().unwrap(); | |
assert_eq!(*mutex.lock(), 1); | |
} |