From cf6c78577b0f08b89c418b1c5aeb01da98230bf0 Mon Sep 17 00:00:00 2001 From: cozis Date: Thu, 4 Jun 2026 13:44:48 +0200 Subject: [PATCH] io_interface: Add mocks for futexWait, futexWaitUncancelable, futexWake --- src/io_interface.zig | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/io_interface.zig b/src/io_interface.zig index f9ca449..2964e7d 100644 --- a/src/io_interface.zig +++ b/src/io_interface.zig @@ -388,25 +388,19 @@ fn checkCancel(userdata: ?*anyopaque) Cancelable!void { } fn futexWait(userdata: ?*anyopaque, ptr: *const u32, expected: u32, timeout: Timeout) Cancelable!void { - _ = userdata; - _ = ptr; - _ = expected; _ = timeout; - @panic("Not implemented yet"); + const node: *Node = @ptrCast(@alignCast(userdata.?)); + node.futexWait(ptr, expected); } fn futexWaitUncancelable(userdata: ?*anyopaque, ptr: *const u32, expected: u32) void { - _ = userdata; - _ = ptr; - _ = expected; - @panic("Not implemented yet"); + const node: *Node = @ptrCast(@alignCast(userdata.?)); + node.futexWait(ptr, expected); } fn futexWake(userdata: ?*anyopaque, ptr: *const u32, max_waiters: u32) void { - _ = userdata; - _ = ptr; - _ = max_waiters; - @panic("Not implemented yet"); + const node: *Node = @ptrCast(@alignCast(userdata.?)); + node.futexWake(ptr, max_waiters); } fn operate(userdata: ?*anyopaque, operation: Operation) Cancelable!Operation.Result {