aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Thread/Futex.zig
diff options
context:
space:
mode:
Diffstat (limited to 'lib/std/Thread/Futex.zig')
-rw-r--r--lib/std/Thread/Futex.zig16
1 files changed, 8 insertions, 8 deletions
diff --git a/lib/std/Thread/Futex.zig b/lib/std/Thread/Futex.zig
index 5e942924c3..aecf646424 100644
--- a/lib/std/Thread/Futex.zig
+++ b/lib/std/Thread/Futex.zig
@@ -262,10 +262,10 @@ const LinuxImpl = struct {
ts.nsec = @as(@TypeOf(ts.nsec), @intCast(timeout_ns % std.time.ns_per_s));
}
- const rc = linux.futex_wait(
- @as(*const i32, @ptrCast(&ptr.raw)),
- linux.FUTEX.PRIVATE_FLAG | linux.FUTEX.WAIT,
- @as(i32, @bitCast(expect)),
+ const rc = linux.futex_4arg(
+ &ptr.raw,
+ .{ .cmd = .WAIT, .private = true },
+ expect,
if (timeout != null) &ts else null,
);
@@ -284,10 +284,10 @@ const LinuxImpl = struct {
}
fn wake(ptr: *const atomic.Value(u32), max_waiters: u32) void {
- const rc = linux.futex_wake(
- @as(*const i32, @ptrCast(&ptr.raw)),
- linux.FUTEX.PRIVATE_FLAG | linux.FUTEX.WAKE,
- std.math.cast(i32, max_waiters) orelse std.math.maxInt(i32),
+ const rc = linux.futex_3arg(
+ &ptr.raw,
+ .{ .cmd = .WAKE, .private = true },
+ @min(max_waiters, std.math.maxInt(i32)),
);
switch (linux.E.init(rc)) {