QSelectMutexGrabber(int fd, QMutex *mutex) : m_mutex(mutex) { if (m_mutex->tryLock()) return; char dummy = 0; qt_pipe_write(fd, &dummy, 1); m_mutex->lock(); }
QSelectMutexGrabber(int writeFd, int readFd, QMutex *mutex) : m_mutex(mutex) { if (m_mutex->tryLock()) return; char dummy = 0; qt_pipe_write(writeFd, &dummy, 1); m_mutex->lock(); char buffer; while (::read(readFd, &buffer, 1) > 0) {} }