diff options
Diffstat (limited to 'lib/std/Thread/Futex.zig')
| -rw-r--r-- | lib/std/Thread/Futex.zig | 16 |
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)) { |
