macros_rs/os.rs
1#[doc(hidden)]
2#[macro_export]
3macro_rules! _os_env_set_sync {
4 ( $( $key:ident = $val:expr ),* $(,)? ) => {{
5 static LOCK: std::sync::Mutex<()> = std::sync::Mutex::new(());
6 let _g = LOCK.lock().unwrap();
7
8 $(
9 // SAFETY: the lock ensures this function blocks until the lock guard is released
10 unsafe { std::env::set_var(stringify!($key), $val); }
11 )*
12 }};
13}
14
15#[doc(inline)]
16pub use _os_env_set_sync as set_env_sync;