From: Alex Henrie alexhenrie24@gmail.com
If get_io_timeouts sets the interval timeout to 0, it means that the read should return immediately even if there is no data. If get_io_timeouts sets the interval timeout to -1, it means that the read operation should wait indefinitely for the next byte. In either case, the interval timer is not used, so there's no need to worry about forgetting to start it, and the delay in returning data was causing a problem in Ti99Hdx.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=42882 --- dlls/ntdll/unix/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c index 3d590e4915b..5db6f110da0 100644 --- a/dlls/ntdll/unix/file.c +++ b/dlls/ntdll/unix/file.c @@ -5760,7 +5760,7 @@ NTSTATUS WINAPI NtReadFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, vo skip the synchronous read to make sure that the server starts the read interval timer after the first read */ if ((status = get_io_timeouts( handle, type, length, TRUE, &timeouts ))) goto err; - if (timeouts.interval) + if (timeouts.interval > 0) { status = register_async_file_read( handle, event, apc, apc_user, iosb_ptr, buffer, total, length, FALSE );