about summary refs log tree commit diff
path: root/library/std/src/sys/common
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2023-04-28 14:27:17 +0200
committerRalf Jung <post@ralfj.de>2023-04-28 17:24:16 +0200
commitd5e7ac53c7c4034f31cfc2fa4f0f7bded19ec8d2 (patch)
tree18bce3c75c662e51a6e8202243d59161549a1011 /library/std/src/sys/common
parent2fce2290865f012391b8f3e581c3852a248031fa (diff)
downloadrust-d5e7ac53c7c4034f31cfc2fa4f0f7bded19ec8d2.tar.gz
rust-d5e7ac53c7c4034f31cfc2fa4f0f7bded19ec8d2.zip
avoid duplicating TLS state between test std and realstd
Diffstat (limited to 'library/std/src/sys/common')
-rw-r--r--library/std/src/sys/common/thread_local/mod.rs5
-rw-r--r--library/std/src/sys/common/thread_local/os_local.rs2
2 files changed, 6 insertions, 1 deletions
diff --git a/library/std/src/sys/common/thread_local/mod.rs b/library/std/src/sys/common/thread_local/mod.rs
index a7528c06c9d..17c085cc92c 100644
--- a/library/std/src/sys/common/thread_local/mod.rs
+++ b/library/std/src/sys/common/thread_local/mod.rs
@@ -1,5 +1,10 @@
 #![unstable(feature = "thread_local_internals", reason = "should not be necessary", issue = "none")]
 
+// There are three thread-local implementations: "static", "fast", "OS".
+// The "OS" thread local key type is accessed via platform-specific API calls and is slow, while the
+// "fast" key type is accessed via code generated via LLVM, where TLS keys are set up by the linker.
+// "static" is for single-threaded platforms where a global static is sufficient.
+
 cfg_if::cfg_if! {
     if #[cfg(all(target_family = "wasm", not(target_feature = "atomics")))] {
         #[doc(hidden)]
diff --git a/library/std/src/sys/common/thread_local/os_local.rs b/library/std/src/sys/common/thread_local/os_local.rs
index e9516f9983f..6b01f6e44d3 100644
--- a/library/std/src/sys/common/thread_local/os_local.rs
+++ b/library/std/src/sys/common/thread_local/os_local.rs
@@ -18,7 +18,7 @@ pub macro thread_local_inner {
         ) -> $crate::option::Option<&'static $t> {
             const INIT_EXPR: $t = $init;
 
-                        // On platforms without `#[thread_local]` we fall back to the
+            // On platforms without `#[thread_local]` we fall back to the
             // same implementation as below for os thread locals.
             #[inline]
             const fn __init() -> $t { INIT_EXPR }