Skip to content

Commit 068a3cb

Browse files
committed
frontend: migrate to the new API of std.Progress
1 parent 1c57d78 commit 068a3cb

File tree

1 file changed

+5
-40
lines changed

1 file changed

+5
-40
lines changed

src/main.zig

Lines changed: 5 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -3629,7 +3629,7 @@ fn serve(
36293629
switch (hdr.tag) {
36303630
.exit => return,
36313631
.update => {
3632-
assert(main_progress_node.recently_updated_child == null);
3632+
for (main_progress_node.children) |child| assert(child == null);
36333633
tracy.frameMark();
36343634

36353635
if (arg_mode == .translate_c) {
@@ -3687,7 +3687,7 @@ fn serve(
36873687
},
36883688
.hot_update => {
36893689
tracy.frameMark();
3690-
assert(main_progress_node.recently_updated_child == null);
3690+
for (main_progress_node.children) |child| assert(child == null);
36913691
if (child_pid) |pid| {
36923692
try comp.hotCodeSwap(main_progress_node, pid);
36933693
try serveUpdateResults(&server, comp);
@@ -3726,48 +3726,13 @@ fn progressThread(progress: *std.Progress, server: *const Server, reset: *std.Th
37263726
error.Timeout => {},
37273727
}
37283728

3729-
var buf: std.BoundedArray(u8, 160) = .{};
3730-
3731-
{
3732-
progress.update_mutex.lock();
3733-
defer progress.update_mutex.unlock();
3734-
3735-
var need_ellipse = false;
3736-
var maybe_node: ?*std.Progress.Node = &progress.root;
3737-
while (maybe_node) |node| {
3738-
if (need_ellipse) {
3739-
buf.appendSlice("... ") catch {};
3740-
}
3741-
need_ellipse = false;
3742-
const eti = @atomicLoad(usize, &node.unprotected_estimated_total_items, .Monotonic);
3743-
const completed_items = @atomicLoad(usize, &node.unprotected_completed_items, .Monotonic);
3744-
const current_item = completed_items + 1;
3745-
if (node.name.len != 0 or eti > 0) {
3746-
if (node.name.len != 0) {
3747-
buf.appendSlice(node.name) catch {};
3748-
need_ellipse = true;
3749-
}
3750-
if (eti > 0) {
3751-
if (need_ellipse) buf.appendSlice(" ") catch {};
3752-
buf.writer().print("[{d}/{d}] ", .{ current_item, eti }) catch {};
3753-
need_ellipse = false;
3754-
} else if (completed_items != 0) {
3755-
if (need_ellipse) buf.appendSlice(" ") catch {};
3756-
buf.writer().print("[{d}] ", .{current_item}) catch {};
3757-
need_ellipse = false;
3758-
}
3759-
}
3760-
maybe_node = @atomicLoad(?*std.Progress.Node, &node.recently_updated_child, .Acquire);
3761-
}
3762-
}
3763-
3764-
const progress_string = buf.slice();
3729+
progress.refresh();
37653730

37663731
server.serveMessage(.{
37673732
.tag = .progress,
3768-
.bytes_len = @as(u32, @intCast(progress_string.len)),
3733+
.bytes_len = @as(u32, @intCast(progress.end)),
37693734
}, &.{
3770-
progress_string,
3735+
progress.output_buffer[0..progress.end],
37713736
}) catch |err| {
37723737
fatal("unable to write to client: {s}", .{@errorName(err)});
37733738
};

0 commit comments

Comments
 (0)