void InterprocessConnection::run() { while (! threadShouldExit()) { if (socket != nullptr) { const int ready = socket->waitUntilReady (true, 0); if (ready < 0) { { const ScopedLock sl (pipeAndSocketLock); socket = nullptr; } connectionLostInt(); break; } else if (ready > 0) { if (! readNextMessageInt()) break; } else { Thread::sleep (1); } } else if (pipe != nullptr) { if (! pipe->isOpen()) { { const ScopedLock sl (pipeAndSocketLock); pipe = nullptr; } connectionLostInt(); break; } else { if (! readNextMessageInt()) break; } } else { break; } } }
void InterprocessConnection::runThread() { while (! thread->threadShouldExit()) { if (socket != nullptr) { const int ready = socket->waitUntilReady (true, 0); if (ready < 0) { deletePipeAndSocket(); connectionLostInt(); break; } if (ready == 0) { thread->wait (1); continue; } } else if (pipe != nullptr) { if (! pipe->isOpen()) { deletePipeAndSocket(); connectionLostInt(); break; } } else { break; } if (thread->threadShouldExit() || ! readNextMessageInt()) break; } }