mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 06:13:07 +00:00
Fix progress when multiple zig rc child processes are building resinator
This commit is contained in:
parent
b16890e6dd
commit
c32e0d3000
@ -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: {
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user