19 lines
616 B
Rust
19 lines
616 B
Rust
//@ignore-target-windows: no threads nor sleep on Windows
|
|
//@compile-flags: -Zmiri-ignore-leaks -Zmiri-disable-isolation
|
|
use std::sync::{Arc, Mutex};
|
|
use std::thread;
|
|
use std::time::Duration;
|
|
|
|
fn main() {
|
|
let finished = Arc::new(Mutex::new(false));
|
|
let t_finished = finished.clone();
|
|
thread::spawn(move || {
|
|
// Sleep very, very long.
|
|
thread::sleep(Duration::new(u64::MAX, 0));
|
|
*t_finished.lock().unwrap() = true;
|
|
});
|
|
thread::sleep(Duration::from_millis(100));
|
|
assert_eq!(*finished.lock().unwrap(), false);
|
|
// Stopping the main thread will also kill the sleeper.
|
|
}
|