Commit 0f94881

Eric Bower  ·  2026-05-16 11:27:49 -0400 EDT
parent e2a707a
chore(wait): when looping tasks only print the non-completed tasks
1 files changed,  +10, -5
M src/main.zig
+10, -5
 1@@ -1473,6 +1473,7 @@ fn wait(cfg: *Cfg, matchers: std.ArrayList(SessionMatch)) !void {
 2 
 3     var agg_exit_code: u8 = 0;
 4     var last_print: i64 = 0;
 5+    var prev_done: i32 = 0;
 6     while (true) {
 7         agg_exit_code = 0;
 8         var sessions = try util.get_session_entries(alloc, cfg.socket_dir);
 9@@ -1518,11 +1519,14 @@ fn wait(cfg: *Cfg, matchers: std.ArrayList(SessionMatch)) !void {
10                 }
11                 continue;
12             }
13-            try stdout.print(
14-                "[{d}] completed task={s} exit_code={d}\n",
15-                .{ session.task_ended_at.?, session.name, session.task_exit_code.? },
16-            );
17-            try stdout.flush();
18+            if (done >= prev_done) {
19+                // Newly completed — print immediately
20+                try stdout.print(
21+                    "[{d}] completed task={s} exit_code={d}\n",
22+                    .{ session.task_ended_at.?, session.name, session.task_exit_code.? },
23+                );
24+                try stdout.flush();
25+            }
26             if (session.task_exit_code != 0) {
27                 agg_exit_code = session.task_exit_code orelse 0;
28             }
29@@ -1566,6 +1570,7 @@ fn wait(cfg: *Cfg, matchers: std.ArrayList(SessionMatch)) !void {
30             }
31         }
32 
33+        prev_done = done;
34         std.Thread.sleep(1000 * std.time.ns_per_ms);
35     }
36