From 25007197aef2ab5da57d6ef4a4bc357c123d6b21 Mon Sep 17 00:00:00 2001 From: Tobias Bucher Date: Fri, 24 May 2024 10:04:44 +0200 Subject: [PATCH] Add note about safety of `std::env::set_var` on Windows --- std/src/env.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/std/src/env.rs b/std/src/env.rs index 95ee2a91d159e..d433caa9d2a45 100644 --- a/std/src/env.rs +++ b/std/src/env.rs @@ -320,11 +320,14 @@ impl Error for VarError { /// /// This function is safe to call in a single-threaded program. /// -/// In multi-threaded programs, you must ensure that are no other threads -/// concurrently writing or *reading*(!) from the environment through functions -/// other than the ones in this module. You are responsible for figuring out -/// how to achieve this, but we strongly suggest not using `set_var` or -/// `remove_var` in multi-threaded programs at all. +/// This function is also always safe to call on Windows, in single-threaded +/// and multi-threaded programs. +/// +/// In multi-threaded programs on other operating systems, you must ensure that +/// are no other threads concurrently writing or *reading*(!) from the +/// environment through functions other than the ones in this module. You are +/// responsible for figuring out how to achieve this, but we strongly suggest +/// not using `set_var` or `remove_var` in multi-threaded programs at all. /// /// Most C libraries, including libc itself, do not advertise which functions /// read from the environment. Even functions from the Rust standard library do @@ -379,6 +382,9 @@ unsafe fn _set_var(key: &OsStr, value: &OsStr) { /// /// This function is safe to call in a single-threaded program. /// +/// This function is also always safe to call on Windows, in single-threaded +/// and multi-threaded programs. +/// /// In multi-threaded programs, you must ensure that are no other threads /// concurrently writing or *reading*(!) from the environment through functions /// other than the ones in this module. You are responsible for figuring out