| //@only-target-windows: Uses win32 api functions | |
| // We are making scheduler assumptions here. | |
| //@compile-flags: -Zmiri-preemption-rate=0 | |
| use std::os::windows::io::IntoRawHandle; | |
| use std::thread; | |
| extern "system" { | |
| fn CloseHandle(handle: usize) -> i32; | |
| } | |
| fn main() { | |
| let thread = thread::spawn(|| {}).into_raw_handle() as usize; | |
| // this yield ensures that `thread` is terminated by this point | |
| thread::yield_now(); | |
| unsafe { | |
| assert_ne!(CloseHandle(thread), 0); | |
| } | |
| } |