aboutsummaryrefslogtreecommitdiff
path: root/lib/std/os/linux.zig
diff options
context:
space:
mode:
Diffstat (limited to 'lib/std/os/linux.zig')
-rw-r--r--lib/std/os/linux.zig10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig
index 597922e0c4..8928e1fdf2 100644
--- a/lib/std/os/linux.zig
+++ b/lib/std/os/linux.zig
@@ -1553,6 +1553,16 @@ pub fn sched_getaffinity(pid: pid_t, size: usize, set: *cpu_set_t) usize {
return 0;
}
+pub fn sched_setaffinity(pid: pid_t, set: *const cpu_set_t) !void {
+ const size = @sizeOf(cpu_set_t);
+ const rc = syscall3(.sched_setaffinity, @as(usize, @bitCast(@as(isize, pid))), size, @intFromPtr(set));
+
+ switch (std.os.errno(rc)) {
+ .SUCCESS => return,
+ else => |err| return std.os.unexpectedErrno(err),
+ }
+}
+
pub fn epoll_create() usize {
return epoll_create1(0);
}