| ... | @@ -2475,6 +2475,7 @@ fn operate(userdata: ?*anyopaque, op: *Io.Operation) Io.Cancelable!void { | ... | @@ -2475,6 +2475,7 @@ fn operate(userdata: ?*anyopaque, op: *Io.Operation) Io.Cancelable!void { |
| 2475 | fn batchWait(userdata: ?*anyopaque, b: *Io.Batch, timeout: Io.Timeout) Io.Batch.WaitError!void { | 2475 | fn batchWait(userdata: ?*anyopaque, b: *Io.Batch, timeout: Io.Timeout) Io.Batch.WaitError!void { |
| 2476 | const t: *Threaded = @ptrCast(@alignCast(userdata)); | 2476 | const t: *Threaded = @ptrCast(@alignCast(userdata)); |
| 2477 | if (is_windows) return batchWaitWindows(t, b, timeout); | 2477 | if (is_windows) return batchWaitWindows(t, b, timeout); |
| | 2478 | if (native_os == .wasi and !builtin.link_libc) @panic("TODO"); |
| 2478 | const operations = b.operations; | 2479 | const operations = b.operations; |
| 2479 | const len: u31 = @intCast(operations.len); | 2480 | const len: u31 = @intCast(operations.len); |
| 2480 | const ring = b.ring[0..len]; | 2481 | const ring = b.ring[0..len]; |
| ... | @@ -2597,7 +2598,7 @@ fn batchCancel(userdata: ?*anyopaque, b: *Io.Batch) void { | ... | @@ -2597,7 +2598,7 @@ fn batchCancel(userdata: ?*anyopaque, b: *Io.Batch) void { |
| 2597 | b.user.complete_tail = complete_tail; | 2598 | b.user.complete_tail = complete_tail; |
| 2598 | } | 2599 | } |
| 2599 | | 2600 | |
| 2600 | fn batchWaitWindows(t: *Threaded, b: *Io.Batch, timeout: Io.Timeout) Io.ConcurrentError!void { | 2601 | fn batchWaitWindows(t: *Threaded, b: *Io.Batch, timeout: Io.Timeout) Io.Batch.WaitError!void { |
| 2601 | const operations = b.operations; | 2602 | const operations = b.operations; |
| 2602 | const len: u31 = @intCast(operations.len); | 2603 | const len: u31 = @intCast(operations.len); |
| 2603 | const ring = b.ring[0..len]; | 2604 | const ring = b.ring[0..len]; |