From 49e7a6b53218bbd72a29a9719ed377ee46d8eada Mon Sep 17 00:00:00 2001 From: Daniel Tang Date: Mon, 16 Mar 2026 13:32:18 -0400 Subject: [PATCH] perf(uucore): call rt_sigaction once not 62 times `./coreutils true` becomes 6% faster. For some unknown reason, `capture_startup_state` runs 62 times, so I'll just hotfix it to immediately return from the second time onwards. When 2d7a3bf2e037bac1283c67879d7a9759b2038a6e introduced the fcntl calls, each group of 3 calls was repeated 4 times. Some time later, it became 62 times. Now it runs only 1 time. --- src/uucore/src/lib/features/signals.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/uucore/src/lib/features/signals.rs b/src/uucore/src/lib/features/signals.rs index a5141f299..275f7acd2 100644 --- a/src/uucore/src/lib/features/signals.rs +++ b/src/uucore/src/lib/features/signals.rs @@ -538,6 +538,9 @@ static STDERR_WAS_CLOSED: AtomicBool = AtomicBool::new(false); #[cfg(unix)] static SIGPIPE_WAS_IGNORED: AtomicBool = AtomicBool::new(false); +#[cfg(unix)] +static STARTUP_STATE_WAS_CAPTURED: AtomicBool = AtomicBool::new(false); + /// Captures stdio and SIGPIPE state at process initialization, before main() runs. /// /// # Safety @@ -549,6 +552,11 @@ pub unsafe extern "C" fn capture_startup_state() { use std::mem::MaybeUninit; use std::ptr; + // No spinlock because we're single-threaded at this point + if STARTUP_STATE_WAS_CAPTURED.swap(true, Ordering::Relaxed) { + return; + } + // Capture stdio state unsafe { STDIN_WAS_CLOSED.store(