zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

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:
Mlib/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 => {