commit 78c4fcfcd89e80ef70cf4cbb13f5100c84432496 (tree)
parent 3c2f5adf41f0e75fd5e8f6661891dd7d4fa770a9
Author: Andrew Kelley <andrew@ziglang.org>
Date: Mon, 22 Dec 2025 15:13:48 -0800
std.debug.lockStderr: cancel protection rather than recancel
because we need to return the value
Diffstat:
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/std/debug.zig b/lib/std/debug.zig
@@ -281,8 +281,10 @@ pub const sys_can_stack_trace = switch (builtin.cpu.arch) {
/// application's chosen `Io` implementation.
pub fn lockStderr(buffer: []u8) Io.LockedStderr {
const io = std.options.debug_io;
+ const prev = io.swapCancelProtection(.blocked);
+ defer _ = io.swapCancelProtection(prev);
return io.lockStderr(buffer, null) catch |err| switch (err) {
- error.Canceled => io.recancel(),
+ error.Canceled => unreachable, // Cancel protection enabled above.
};
}