diff --git a/lib/std/Io/Threaded.zig b/lib/std/Io/Threaded.zig index 08d67a69975d0e63c3ff0ff9571fcc4d2d86d3ce..a9a8586da682b3423b177509145a83a9e11405ee 100644 --- a/lib/std/Io/Threaded.zig +++ b/lib/std/Io/Threaded.zig @@ -8444,6 +8444,7 @@ fn fileReadStreamingWindows(file: File, data: []const []u8) File.Reader.Error!us var io_status_block: windows.IO_STATUS_BLOCK = undefined; var done: bool = false; + const infinite: windows.LARGE_INTEGER = windows.INFINITE; read: { const syscall: Syscall = try .start(); @@ -8472,7 +8473,7 @@ fn fileReadStreamingWindows(file: File, data: []const []u8) File.Reader.Error!us } try syscall.toApc(.{ .handle = file.handle, .iosb = &io_status_block }); while (true) { - switch (windows.ntdll.NtDelayExecution(1, null)) { + switch (windows.ntdll.NtDelayExecution(1, &infinite)) { .USER_APC => { if (!done) { // Other APC work was queued before calling into this function. @@ -8481,7 +8482,7 @@ fn fileReadStreamingWindows(file: File, data: []const []u8) File.Reader.Error!us } break syscall.finishApc(); }, - .SUCCESS, .CANCELLED => { + .SUCCESS, .CANCELLED, .TIMEOUT, .ALERTED => { try syscall.checkCancelApc(); continue; }, diff --git a/lib/std/os/windows/ntdll.zig b/lib/std/os/windows/ntdll.zig index a6d5b21322e29333aeaef3d64c7b20c3d74a9fc2..04b0a288debe648de202ed988570f1bb97bbaa6f 100644 --- a/lib/std/os/windows/ntdll.zig +++ b/lib/std/os/windows/ntdll.zig @@ -596,7 +596,7 @@ pub extern "ntdll" fn NtCancelSynchronousIoFile( pub extern "ntdll" fn NtDelayExecution( Alertable: BOOLEAN, - DelayInterval: ?*const LARGE_INTEGER, + DelayInterval: *const LARGE_INTEGER, ) callconv(.winapi) NTSTATUS; pub extern "ntdll" fn NtCancelIoFileEx(