commit 9eed87f93ea9afeb16bede0b3c162a7055d89a76 (tree)
parent e270c97ed119fb179bf0156caad6c6ea31453bd5
Author: Alex Rønne Petersen <alex@alexrp.com>
Date: Wed, 3 Dec 2025 03:30:06 +0100
std.process.Child: enable rusage collection for freebsd, illumos, serenity
Diffstat:
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git 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;