From e496ef26dabb3a2da4821c7c0c2e4ffc6f7d86ce Mon Sep 17 00:00:00 2001 From: LemonBoy Date: Fri, 13 Mar 2020 18:40:18 +0100 Subject: Nicer idle wait loop Trying to acquire twice the same mutex generates an idle loop. --- lib/std/debug.zig | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'lib/std/debug.zig') diff --git a/lib/std/debug.zig b/lib/std/debug.zig index cdbba2367b..f2c736bbba 100644 --- a/lib/std/debug.zig +++ b/lib/std/debug.zig @@ -278,8 +278,11 @@ pub fn panicExtra(trace: ?*const builtin.StackTrace, first_trace_addr: ?usize, c // Another thread is panicking, wait for the last one to finish // and call abort() - // XXX: Find a nicer way to loop forever - while (true) {} + // Here we sleep forever without hammering the CPU by causing a + // deadlock + var deadlock = std.Mutex.init(); + _ = deadlock.acquire(); + _ = deadlock.acquire(); } }, 1 => { -- cgit v1.2.3