rust/library/std/src
León Orell Valerian Liehr 6f415e0f4c
Rollup merge of #140628 - joboet:async_signal_safe, r=Mark-Simulacrum
std: stop using TLS in signal handler

TLS is not async-signal-safe, making its use in the signal handler used to detect stack overflows unsound (c.f. #133698). POSIX however lists two thread-specific identifiers that can be obtained in a signal handler: the current `pthread_t` and the address of `errno`. Since `pthread_equal` is not AS-safe, `pthread_t` should be considered opaque, so for our purposes, `&errno` is the only option. This however works nicely: we can use the address as a key into a map that stores information for each thread. This PR uses a `BTreeMap` protected by a spin lock to hold the guard page address and thread name and thus fixes #133698.
2025-05-18 18:44:11 +02:00
..
backtrace remove redundant imports 2023-12-10 10:56:22 +08:00
collections update version placeholders 2025-05-12 15:33:30 +02:00
ffi update version placeholders 2025-05-12 15:33:30 +02:00
fs [win][arm64] Disable FS tests that require symlinks 2025-05-07 11:12:11 -07:00
hash remove const_hash feature leftovers 2024-11-02 11:27:14 +01:00
io update cfg(bootstrap) 2025-05-12 15:33:37 +02:00
net ToSocketAddrs: fix typo 2025-04-04 14:47:04 +02:00
os Rollup merge of #141013 - federico-terzi:feat/command_startupinfo_windows, r=joboet 2025-05-16 07:19:42 +02:00
prelude update cfg(bootstrap) 2025-05-12 15:33:37 +02:00
process std: Apply deprecated_safe_2024 2025-02-13 13:10:28 -08:00
sync Rollup merge of #140783 - veluca93:oncelock-docs, r=jhpratt 2025-05-10 16:26:03 +02:00
sys Rollup merge of #140628 - joboet:async_signal_safe, r=Mark-Simulacrum 2025-05-18 18:44:11 +02:00
sys_common std: get rid of sys_common::process 2025-04-28 11:13:50 +02:00
thread update cfg(bootstrap) 2025-05-12 15:33:37 +02:00
alloc.rs use generic Atomic type where possible 2025-04-27 02:18:08 +03:00
ascii.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
backtrace.rs use generic Atomic type where possible 2025-04-27 02:18:08 +03:00
bstr.rs Implement ByteStr and ByteString types 2025-01-11 06:35:21 +02:00
env.rs Delegate to inner vec::IntoIter from env::ArgsOs 2025-05-01 15:18:15 -07:00
error.rs Move std::error unit tests to integration tests 2025-01-26 10:28:04 +00:00
f16.rs Initial implementation of core_float_math 2025-05-13 22:08:18 +00:00
f32.rs Initial implementation of core_float_math 2025-05-13 22:08:18 +00:00
f64.rs Initial implementation of core_float_math 2025-05-13 22:08:18 +00:00
f128.rs Initial implementation of core_float_math 2025-05-13 22:08:18 +00:00
fs.rs Rollup merge of #140595 - lolbinarycat:std-set_permissions-typo, r=cuviper 2025-05-03 12:44:36 +02:00
keyword_docs.rs Rollup merge of #140197 - ktnlvr:master, r=workingjubilee 2025-05-02 22:17:01 +10:00
lib.miri.rs add 'x.py miri', and make it work for 'library/{core,alloc,std}' 2024-04-03 20:27:20 +02:00
lib.rs Rollup merge of #140966 - est31:let_chains_library, r=tgross35 2025-05-18 11:03:45 +02:00
macros.rs fix doc path in std::fmt macro 2025-02-25 09:08:22 +05:30
num.rs Move std::num unit tests to integration tests 2025-01-26 10:28:04 +00:00
panic.rs use generic Atomic type where possible 2025-04-27 02:18:08 +03:00
panicking.rs use generic Atomic type where possible 2025-04-27 02:18:08 +03:00
pat.rs Add pattern types to parser 2024-04-08 11:57:17 +00:00
path.rs Rollup merge of #140159 - thaliaarchi:pathbuf-extension, r=workingjubilee 2025-05-02 22:17:00 +10:00
process.rs std: get rid of sys_common::process 2025-04-28 11:13:50 +02:00
random.rs Unify cygwin & horizon random impl 2025-03-10 21:23:32 +08:00
rt.rs deduplicate abort implementations 2025-05-15 11:20:13 +02:00
test_helpers.rs std: get rid of sys_common::io 2025-02-07 16:54:07 +01:00
time.rs Be more specific about the error in the SystemTime example 2025-04-17 11:57:28 -05:00