win32: process message queue in debug-helper

Process messages while waiting for pi.hProcess.

Avoid the spice-x from hanging in WaitForInputIdle(), although the
client itself might not be ready, not even started...

https://bugzilla.redhat.com/show_bug.cgi?id=903190
This commit is contained in:
Marc-André Lureau 2013-01-23 19:59:13 +01:00
parent ea6c9d2673
commit d5229a71eb

View File

@ -24,6 +24,7 @@ int
main(int argc, char *argv[])
{
char pipe[2048];
MSG msg;
STARTUPINFO si = { 0, };
PROCESS_INFORMATION pi = { 0, };
gchar *program_path = get_program_path();
@ -55,8 +56,19 @@ main(int argc, char *argv[])
goto end;
}
// Wait until child process exits
WaitForSingleObject(pi.hProcess, INFINITE);
while (1) {
DWORD reason = MsgWaitForMultipleObjects(1, &pi.hProcess, FALSE,
INFINITE, QS_ALLINPUT);
if (reason == WAIT_OBJECT_0)
break;
else {
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}
// Close process and thread handles
CloseHandle(pi.hProcess);