Don't wait infinite. Windows doesn't like that for some reason. See #93 and #94

This commit is contained in:
Micke Prag 2011-10-07 07:58:18 +00:00
parent ffeb0b79d4
commit 184d2ee315

View file

@ -113,13 +113,17 @@ void ConnectionListener::run() {
ConnectNamedPipe(hPipe, &oOverlap); ConnectNamedPipe(hPipe, &oOverlap);
WaitForSingleObject(oOverlap.hEvent, INFINITE); DWORD result = WaitForSingleObject(oOverlap.hEvent, 1000);
if (!d->running) { if (!d->running) {
break; break;
} }
if(result == WAIT_TIMEOUT){
CloseHandle(hPipe);
continue;
}
BOOL connected = GetOverlappedResult(hPipe, &oOverlap, &cbBytesRead, false); BOOL connected = GetOverlappedResult(hPipe, &oOverlap, &cbBytesRead, false);
if (!connected) { if (!connected) {
CloseHandle(hPipe); CloseHandle(hPipe);
return; return;