@@ -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