From c32e0d3000f4ee539c00577b75e18c683e84f2c4 Mon Sep 17 00:00:00 2001 From: Ryan Liptak Date: Sat, 9 Mar 2024 17:47:56 -0800 Subject: Fix progress when multiple zig rc child processes are building resinator --- src/Compilation.zig | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/Compilation.zig') diff --git a/src/Compilation.zig b/src/Compilation.zig index 3f312e9956..2fce786856 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -5042,12 +5042,18 @@ fn spawnZigRc( }, .progress => { node_name.clearRetainingCapacity(); - if (body.len > 0) { + // is a special string that indicates that the child + // process has reached resinator's main function + if (std.mem.eql(u8, body, "")) { + child_progress_node.setName(src_basename); + } + // Ignore 0-length strings since if multiple zig rc commands + // are executed at the same time, only one will send progress strings + // while the other(s) will send empty strings. + else if (body.len > 0) { try node_name.appendSlice(arena, "build 'zig rc'... "); try node_name.appendSlice(arena, body); child_progress_node.setName(node_name.items); - } else { - child_progress_node.setName(src_basename); } }, else => {}, // ignore other messages -- cgit v1.2.3