sockfilt.c: fixed getting stuck waiting for MinGW stdin pipe

This commit is contained in:
Marc Hoersken 2014-04-22 14:52:33 +02:00
parent a5d7ec1848
commit 6a03f6368f

View File

@ -568,14 +568,18 @@ static DWORD WINAPI select_ws_stdin_wait_thread(LPVOID lpParameter)
case FILE_TYPE_PIPE: case FILE_TYPE_PIPE:
while(WaitForMultipleObjectsEx(2, handles, FALSE, INFINITE, FALSE) while(WaitForMultipleObjectsEx(2, handles, FALSE, INFINITE, FALSE)
== WAIT_OBJECT_0 + 1) { == WAIT_OBJECT_0 + 1) {
if(!PeekNamedPipe(handle, NULL, 0, NULL, &length, NULL)) { if(PeekNamedPipe(handle, NULL, 0, NULL, &length, NULL)) {
if(length == 0)
SleepEx(100, FALSE);
else
break;
}
else {
if(GetLastError() == ERROR_BROKEN_PIPE) if(GetLastError() == ERROR_BROKEN_PIPE)
SleepEx(100, FALSE); SleepEx(100, FALSE);
else else
break; break;
} }
else
break;
} }
break; break;