aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Progress.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2025-12-17 15:47:33 -0800
committerAndrew Kelley <andrew@ziglang.org>2025-12-23 22:15:09 -0800
commitaa57793b680b3da05f1d888b4df15807905e57c8 (patch)
treed88a1c6f56796942c9b21aee4bbb88e72045d298 /lib/std/Progress.zig
parent97f106f949891870433bfcc6b7cf4c2a6709402e (diff)
downloadzig-aa57793b680b3da05f1d888b4df15807905e57c8.tar.gz
zig-aa57793b680b3da05f1d888b4df15807905e57c8.zip
std: rework locking stderr
Diffstat (limited to 'lib/std/Progress.zig')
-rw-r--r--lib/std/Progress.zig36
1 files changed, 18 insertions, 18 deletions
diff --git a/lib/std/Progress.zig b/lib/std/Progress.zig
index 6edbf9e471..54b52d48af 100644
--- a/lib/std/Progress.zig
+++ b/lib/std/Progress.zig
@@ -565,10 +565,10 @@ fn updateThreadRun(io: Io) void {
maybeUpdateSize(resize_flag);
const buffer, _ = computeRedraw(&serialized_buffer);
- if (io.tryLockStderrWriter(&.{})) |fw| {
- defer io.unlockStderrWriter();
+ if (io.tryLockStderr(&.{}, null) catch return) |locked_stderr| {
+ defer io.unlockStderr();
global_progress.need_clear = true;
- fw.writeAllUnescaped(buffer) catch return;
+ locked_stderr.file_writer.interface.writeAll(buffer) catch return;
}
}
@@ -576,18 +576,18 @@ fn updateThreadRun(io: Io) void {
const resize_flag = wait(io, global_progress.refresh_rate_ns);
if (@atomicLoad(bool, &global_progress.done, .monotonic)) {
- const fw = io.lockStderrWriter(&.{}) catch return;
- defer io.unlockStderrWriter();
- return clearWrittenWithEscapeCodes(fw) catch {};
+ const stderr = io.lockStderr(&.{}, null) catch return;
+ defer io.unlockStderr();
+ return clearWrittenWithEscapeCodes(stderr.file_writer) catch {};
}
maybeUpdateSize(resize_flag);
const buffer, _ = computeRedraw(&serialized_buffer);
- if (io.tryLockStderrWriter(&.{})) |fw| {
- defer io.unlockStderrWriter();
+ if (io.tryLockStderr(&.{}, null) catch return) |locked_stderr| {
+ defer io.unlockStderr();
global_progress.need_clear = true;
- fw.writeAllUnescaped(buffer) catch return;
+ locked_stderr.file_writer.interface.writeAll(buffer) catch return;
}
}
}
@@ -609,11 +609,11 @@ fn windowsApiUpdateThreadRun(io: Io) void {
maybeUpdateSize(resize_flag);
const buffer, const nl_n = computeRedraw(&serialized_buffer);
- if (io.tryLockStderrWriter()) |fw| {
- defer io.unlockStderrWriter();
+ if (io.tryLockStderr(&.{}, null) catch return) |locked_stderr| {
+ defer io.unlockStderr();
windowsApiWriteMarker();
global_progress.need_clear = true;
- fw.writeAllUnescaped(buffer) catch return;
+ locked_stderr.file_writer.interface.writeAll(buffer) catch return;
windowsApiMoveToMarker(nl_n) catch return;
}
}
@@ -622,20 +622,20 @@ fn windowsApiUpdateThreadRun(io: Io) void {
const resize_flag = wait(io, global_progress.refresh_rate_ns);
if (@atomicLoad(bool, &global_progress.done, .monotonic)) {
- _ = io.lockStderrWriter() catch return;
- defer io.unlockStderrWriter();
+ _ = io.lockStderr(&.{}, null) catch return;
+ defer io.unlockStderr();
return clearWrittenWindowsApi() catch {};
}
maybeUpdateSize(resize_flag);
const buffer, const nl_n = computeRedraw(&serialized_buffer);
- if (io.tryLockStderrWriter()) |fw| {
- defer io.unlockStderrWriter();
+ if (io.tryLockStderr(&.{}, null) catch return) |locked_stderr| {
+ defer io.unlockStderr();
clearWrittenWindowsApi() catch return;
windowsApiWriteMarker();
global_progress.need_clear = true;
- fw.writeAllUnescaped(buffer) catch return;
+ locked_stderr.file_writer.interface.writeAll(buffer) catch return;
windowsApiMoveToMarker(nl_n) catch return;
}
}
@@ -766,7 +766,7 @@ fn appendTreeSymbol(symbol: TreeSymbol, buf: []u8, start_i: usize) usize {
pub fn clearWrittenWithEscapeCodes(file_writer: *Io.File.Writer) Io.Writer.Error!void {
if (noop_impl or !global_progress.need_clear) return;
- try file_writer.writeAllUnescaped(clear ++ progress_remove);
+ try file_writer.interface.writeAll(clear ++ progress_remove);
global_progress.need_clear = false;
}