sockfilt.c: fixed getting stuck waiting for MinGW stdin pipe
authorMarc Hoersken <info@marc-hoersken.de>
Tue, 22 Apr 2014 12:52:33 +0000 (14:52 +0200)
committerMarc Hoersken <info@marc-hoersken.de>
Tue, 22 Apr 2014 15:22:41 +0000 (17:22 +0200)
tests/server/sockfilt.c

index b7178ad..0ceaae2 100644 (file)
@@ -568,14 +568,18 @@ static DWORD WINAPI select_ws_stdin_wait_thread(LPVOID lpParameter)
     case FILE_TYPE_PIPE:
       while(WaitForMultipleObjectsEx(2, handles, FALSE, INFINITE, FALSE)
             == 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)
             SleepEx(100, FALSE);
           else
             break;
         }
-        else
-          break;
       }
       break;