io_interface: Add mock of sleep

This commit is contained in:
2026-05-23 18:48:14 +02:00
parent 43ed0cfc9e
commit 1902c3eb99
+16 -3
View File
@@ -1014,9 +1014,22 @@ fn clockResolution(userdata: ?*anyopaque, clock: Clock) Clock.ResolutionError!Du
} }
fn sleep(userdata: ?*anyopaque, timeout: Timeout) Cancelable!void { fn sleep(userdata: ?*anyopaque, timeout: Timeout) Cancelable!void {
_ = userdata; const node: *Node = @ptrCast(@alignCast(userdata.?));
_ = timeout;
@panic("Not implemented yet"); 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 { fn random(userdata: ?*anyopaque, buffer: []u8) void {