commit e496ef26dabb3a2da4821c7c0c2e4ffc6f7d86ce (tree) parent edcf8e0636c5a2674ce2b3e568929232c8cc61eb Author: LemonBoy <thatlemon@gmail.com> Date: Fri, 13 Mar 2020 18:40:18 +0100 Nicer idle wait loop Trying to acquire twice the same mutex generates an idle loop. Diffstat:
| M | lib/std/debug.zig | | | 7 | +++++-- |
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git 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 => {