From 4c460326d91ce58af4a1e19ebc3a1aa119db4538 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Mon, 28 Aug 2006 19:09:28 +0000 Subject: [PATCH] Apparently MsgWaitForMultipleObjects doesn't always return the values one might expect, which means that GetMessage() was occasionally blocking the process. That appears to be the last of the annoying data loss issues, so I think the Windows serial back end actually looks vaguely reliable now. Phew. [originally from svn r6830] --- windows/window.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/windows/window.c b/windows/window.c index 81a28aa4..4855de54 100644 --- a/windows/window.c +++ b/windows/window.c @@ -836,9 +836,7 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) sfree(handles); - if (GetMessage(&msg, NULL, 0, 0) != 1) - break; - do { + while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { if (msg.message == WM_QUIT) goto finished; /* two-level break */ @@ -852,7 +850,7 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) */ if (must_close_session) close_session(); - } while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)); + } /* The messages seem unreliable; especially if we're being tricky */ term_set_focus(term, GetForegroundWindow() == hwnd);