//@ignore-target-windows: No libc on Windows | |
// We are making scheduler assumptions here. | |
//@compile-flags: -Zmiri-preemption-rate=0 | |
// Joining itself is undefined behavior. | |
use std::{ptr, thread}; | |
fn main() { | |
let handle = thread::spawn(|| { | |
unsafe { | |
let native: libc::pthread_t = libc::pthread_self(); | |
assert_eq!(libc::pthread_join(native, ptr::null_mut()), 0); //~ ERROR: Undefined Behavior: trying to join itself | |
} | |
}); | |
thread::yield_now(); | |
handle.join().unwrap(); | |
} |