//@ignore-target-windows: No libc on Windows

// Joining the main thread is undefined behavior.

use std::{ptr, thread};

fn main() {
    let thread_id: libc::pthread_t = unsafe { libc::pthread_self() };
    let handle = thread::spawn(move || {
        unsafe {
            assert_eq!(libc::pthread_join(thread_id, ptr::null_mut()), 0); //~ ERROR: Undefined Behavior: trying to join a detached thread
        }
    });
    thread::yield_now();
    handle.join().unwrap();
}
