From 61b20105e43b0db6d6f459dcb42acdda0365e0a3 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 25 Sep 2024 19:34:34 -0700 Subject: fix crash report not using mutexes correctly --- src/crash_report.zig | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/crash_report.zig b/src/crash_report.zig index e7a18d7f60..6f0820b782 100644 --- a/src/crash_report.zig +++ b/src/crash_report.zig @@ -321,9 +321,6 @@ const PanicSwitch = struct { /// until all panicking threads have dumped their traces. var panicking = std.atomic.Value(u8).init(0); - // Locked to avoid interleaving panic messages from multiple threads. - var panic_mutex = std.Thread.Mutex{}; - /// Tracks the state of the current panic. If the code within the /// panic triggers a secondary panic, this allows us to recover. threadlocal var panic_state_raw: PanicState = .{}; @@ -391,7 +388,7 @@ const PanicSwitch = struct { state.recover_stage = .release_ref_count; - panic_mutex.lock(); + std.debug.lockStdErr(); state.recover_stage = .release_mutex; @@ -453,7 +450,7 @@ const PanicSwitch = struct { noinline fn releaseMutex(state: *volatile PanicState) noreturn { state.recover_stage = .abort; - panic_mutex.unlock(); + std.debug.unlockStdErr(); goTo(releaseRefCount, .{state}); } -- cgit v1.2.3