authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-01-28 17:59:46-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-01-30 12:10:02-08:00
log7ea1d02f9ea767e0d94dbea0437c4216bf69a2c9
treedd5807abc64a92b079bb5620566e3f4c3920d8a1
parentfe15534cd5464f2ba81b68aa00b6e89b39180bef

std.Io.Threaded: add missing check for pending status in batchCancel


1 files changed, 2 insertions(+), 0 deletions(-)

lib/std/Io/Threaded.zig+2
......@@ -2623,6 +2623,7 @@ fn batchCancel(userdata: ?*anyopaque, b: *Io.Batch) void {
26232623 const metadatas_ptr: [*]WinOpMetadata = @ptrCast(@alignCast(reserved));
26242624 const metadatas = metadatas_ptr[0..b.operations.len];
26252625 for (metadatas, 0..) |*metadata, op| {
2626 if (!metadata.pending) continue;
26262627 const done = @atomicLoad(windows.NTSTATUS, &metadata.iosb.u.Status, .acquire) != .PENDING;
26272628 if (done) continue;
26282629 switch (operations[op]) {
......@@ -2633,6 +2634,7 @@ fn batchCancel(userdata: ?*anyopaque, b: *Io.Batch) void {
26332634 }
26342635 }
26352636 for (metadatas) |*metadata| {
2637 if (!metadata.pending) continue;
26362638 while (@atomicLoad(windows.NTSTATUS, &metadata.iosb.u.Status, .acquire) == .PENDING) {
26372639 waitForApcOrAlert();
26382640 }