From a621c868fab2e8be5bd9ed273f548efe252a7ac2 Mon Sep 17 00:00:00 2001 From: asegura Date: Tue, 24 Sep 2024 11:35:15 +0200 Subject: [PATCH] SerialPort: avoid occasional hangs in .read() on Windows --- src/SerialPort.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SerialPort.cpp b/src/SerialPort.cpp index 6abb87e..aec1378 100644 --- a/src/SerialPort.cpp +++ b/src/SerialPort.cpp @@ -157,7 +157,7 @@ int SerialPort::read(void *p, int n) DWORD bytes; OVERLAPPED overlapped; memset(&overlapped, 0, sizeof(OVERLAPPED)); - if (!ReadFile(_handle, p, n, NULL, &overlapped)) + if (!ReadFile(_handle, p, n, NULL, &overlapped) && GetLastError() != ERROR_IO_PENDING) return 0; GetOverlappedResult(_handle, &overlapped, &bytes, TRUE); return bytes;