diff --git a/lib/std/Build/Step/Run.zig b/lib/std/Build/Step/Run.zig index c35ba00b79aadb130933b1d5829cfbd8ea3c78bd..9db00460a9ab788f6a3576fdb0ad43abd5521482 100644 --- a/lib/std/Build/Step/Run.zig +++ b/lib/std/Build/Step/Run.zig @@ -1369,18 +1369,22 @@ fn spawnChildAndCollect( defer if (inherit) std.debug.unlockStdErr(); try child.spawn(); + errdefer { + _ = child.kill() catch {}; + } + var timer = try std.time.Timer.start(); const result = if (run.stdio == .zig_test) - evalZigTest(run, &child, prog_node, fuzz_context) + try evalZigTest(run, &child, prog_node, fuzz_context) else - evalGeneric(run, &child); + try evalGeneric(run, &child); break :t .{ try child.wait(), result, timer.read() }; }; return .{ - .stdio = try result, + .stdio = result, .term = term, .elapsed_ns = elapsed_ns, .peak_rss = child.resource_usage_statistics.getMaxRss() orelse 0,