Commit c32e0d3000
Changed files (2)
lib
compiler
resinator
lib/compiler/resinator/main.zig
@@ -47,9 +47,9 @@ pub fn main() !void {
};
if (zig_integration) {
- // Send progress with an empty string to indicate that the building of the
+ // Send progress with a special string to indicate that the building of the
// resinator binary is finished and we've moved on to actually compiling the .rc file
- try error_handler.server.serveStringMessage(.progress, "");
+ try error_handler.server.serveStringMessage(.progress, "<resinator>");
}
var options = options: {
src/Compilation.zig
@@ -5042,12 +5042,18 @@ fn spawnZigRc(
},
.progress => {
node_name.clearRetainingCapacity();
- if (body.len > 0) {
+ // <resinator> is a special string that indicates that the child
+ // process has reached resinator's main function
+ if (std.mem.eql(u8, body, "<resinator>")) {
+ 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