authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-12-26 14:02:07-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-12-26 17:33:15-07:00
logcb290ed6c99681ade0bace286ae5040546542395
treed1ab691a60dc111ae9d5feb057c731fad593d812
parent3366e4caf3ab3f85cfac9b57b84db4eb9ee0a078

stage2: Cache deadlock debugging only for safe build modes


1 files changed, 2 insertions(+), 3 deletions(-)

src/Cache.zig+2-3
...@@ -13,11 +13,10 @@ const fmt = std.fmt;...@@ -13,11 +13,10 @@ const fmt = std.fmt;
13const Allocator = std.mem.Allocator;13const Allocator = std.mem.Allocator;
1414
15/// Process-scoped map keeping track of all locked Cache hashes, to detect deadlocks.15/// Process-scoped map keeping track of all locked Cache hashes, to detect deadlocks.
16/// The plan is to enable this for debug builds only, but for now we enable16/// This protection is conditionally compiled depending on `want_debug_deadlock`.
17/// it always to catch a deadlock.
18var all_cache_digest_set: std.AutoHashMapUnmanaged(BinDigest, void) = .{};17var all_cache_digest_set: std.AutoHashMapUnmanaged(BinDigest, void) = .{};
19var all_cache_digest_lock: std.Mutex = .{};18var all_cache_digest_lock: std.Mutex = .{};
20const want_debug_deadlock = true; // TODO change this for release builds19const want_debug_deadlock = std.debug.runtime_safety;
21const DebugBinDigest = if (want_debug_deadlock) BinDigest else void;20const DebugBinDigest = if (want_debug_deadlock) BinDigest else void;
22const null_debug_bin_digest = if (want_debug_deadlock) ([1]u8{0} ** bin_digest_len) else {};21const null_debug_bin_digest = if (want_debug_deadlock) ([1]u8{0} ** bin_digest_len) else {};
2322