From: simon Date: Mon, 28 Aug 2006 19:09:28 +0000 (+0000) Subject: Apparently MsgWaitForMultipleObjects doesn't always return the X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/commitdiff_plain/b08600c44afcea44391d6a351e5b4107a1d8309d?hp=5fd93688718a6863178df7e398382c3afc416ebd 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. git-svn-id: svn://svn.tartarus.org/sgt/putty@6830 cda61777-01e9-0310-a592-d414129be87e --- 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);