blob: 86a47ba3655260355bf59d8ac73a7ab3daa6a798 [file] [log] [blame]
//@compile-flags: -Zmiri-disable-isolation -Zmiri-preemption-rate=0
//@ignore-target-windows: No libc env support on Windows
use std::ffi::CStr;
use std::thread;
fn main() {
unsafe {
thread::spawn(|| {
// Access the environment in another thread without taking the env lock
let s = libc::getenv("MIRI_ENV_VAR_TEST\0".as_ptr().cast());
if s.is_null() {
panic!("null");
}
let _s = String::from_utf8_lossy(CStr::from_ptr(s).to_bytes());
});
thread::yield_now();
// After the main thread exits, env vars will be cleaned up -- but because we have not *joined*
// the other thread, those accesses technically race with those in the other thread.
// We don't want to emit an error here, though.
}
}