diff options
| author | Ralf Jung <post@ralfj.de> | 2023-04-28 14:27:17 +0200 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2023-04-28 17:24:16 +0200 |
| commit | d5e7ac53c7c4034f31cfc2fa4f0f7bded19ec8d2 (patch) | |
| tree | 18bce3c75c662e51a6e8202243d59161549a1011 /library/std/src/sys/common | |
| parent | 2fce2290865f012391b8f3e581c3852a248031fa (diff) | |
| download | rust-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.rs | 5 | ||||
| -rw-r--r-- | library/std/src/sys/common/thread_local/os_local.rs | 2 |
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 } |
