forked from qt-creator/qt-creator
Process: Detect a recursive call to waitForSignal()
Assert that we don't call it recursively. If so, the waitForSignal() returns false immediately. Fixes: QTCREATORBUG-30715 Change-Id: I7195b2b1347f67262cc8ae6db5439f5ddd38b5bb Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -769,6 +769,7 @@ private:
|
||||
std::unique_ptr<ProcessInterfaceHandler> m_processHandler;
|
||||
mutable QMutex m_mutex;
|
||||
QList<ProcessInterfaceSignal *> m_signals;
|
||||
Guard m_guard;
|
||||
};
|
||||
|
||||
class ProcessPrivate : public QObject
|
||||
@@ -961,6 +962,10 @@ GeneralProcessBlockingImpl::GeneralProcessBlockingImpl(ProcessPrivate *parent)
|
||||
|
||||
bool GeneralProcessBlockingImpl::waitForSignal(ProcessSignalType newSignal, QDeadlineTimer timeout)
|
||||
{
|
||||
QTC_ASSERT(!m_guard.isLocked(), qWarning("Process::waitForSignal() called recursively. "
|
||||
"The call is being ignored."); return false);
|
||||
GuardLocker locker(m_guard);
|
||||
|
||||
m_processHandler->setParent(nullptr);
|
||||
|
||||
QThread thread;
|
||||
|
Reference in New Issue
Block a user