From e268840076d7ba32825c0004f11ef94e8798a7fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Wed, 3 Dec 2025 03:30:06 +0100 Subject: [PATCH] std.process.Child: enable rusage collection for freebsd, illumos, serenity --- lib/std/process/Child.zig | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/lib/std/process/Child.zig b/lib/std/process/Child.zig index da8d803d60..7d56e92be6 100644 --- a/lib/std/process/Child.zig +++ b/lib/std/process/Child.zig @@ -122,7 +122,7 @@ pub const ResourceUsageStatistics = struct { /// if available. pub inline fn getMaxRss(rus: ResourceUsageStatistics) ?usize { switch (native_os) { - .linux => { + .freebsd, .illumos, .linux, .serenity => { if (rus.rusage) |ru| { return @as(usize, @intCast(ru.maxrss)) * 1024; } else { @@ -149,7 +149,18 @@ pub const ResourceUsageStatistics = struct { } const rusage_init = switch (native_os) { - .linux, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => @as(?posix.rusage, null), + .freebsd, + .illumos, + .linux, + .serenity, + .driverkit, + .ios, + .maccatalyst, + .macos, + .tvos, + .visionos, + .watchos, + => @as(?posix.rusage, null), .windows => @as(?windows.VM_COUNTERS, null), else => {}, }; @@ -486,7 +497,18 @@ fn waitUnwrappedPosix(self: *ChildProcess) void { const res: posix.WaitPidResult = res: { if (self.request_resource_usage_statistics) { switch (native_os) { - .linux, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => { + .freebsd, + .illumos, + .linux, + .serenity, + .driverkit, + .ios, + .maccatalyst, + .macos, + .tvos, + .visionos, + .watchos, + => { var ru: posix.rusage = undefined; const res = posix.wait4(self.id, 0, &ru); self.resource_usage_statistics.rusage = ru;