From 1902c3eb999c0d307f886b62c7e9c7f827092ff4 Mon Sep 17 00:00:00 2001 From: cozis Date: Sat, 23 May 2026 18:48:14 +0200 Subject: [PATCH] io_interface: Add mock of sleep --- src/io_interface.zig | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/io_interface.zig b/src/io_interface.zig index f933c76..424db4e 100644 --- a/src/io_interface.zig +++ b/src/io_interface.zig @@ -1014,9 +1014,22 @@ fn clockResolution(userdata: ?*anyopaque, clock: Clock) Clock.ResolutionError!Du } fn sleep(userdata: ?*anyopaque, timeout: Timeout) Cancelable!void { - _ = userdata; - _ = timeout; - @panic("Not implemented yet"); + const node: *Node = @ptrCast(@alignCast(userdata.?)); + + const duration = switch (timeout) { + .none => return, + .duration => |d| d.raw, + .deadline => |d| now(userdata, d.clock).durationTo(d.raw), + }; + + if (duration.nanoseconds <= 0) + return; + + const delta_us = std.math.cast(u64, @divTrunc(duration.nanoseconds + std.time.ns_per_us - 1, std.time.ns_per_us)) orelse std.math.maxInt(u64); + if (delta_us == 0) + return; + + node.sleep(delta_us); } fn random(userdata: ?*anyopaque, buffer: []u8) void {