aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2016-08-04 10:04:57 +0200
committerUlf Hermann <ulf.hermann@qt.io>2016-08-04 08:24:03 +0000
commitffe113ab628adf6c22e96a22cf0bcda8e80c290d (patch)
tree7bcdf0ded48835d385ad00db7d86732d23873adb
parent5e60d281f1c84c76b80d001ddb3ac00c213de15f (diff)
V4 Debugger: use engineAdded() instead of engineAboutToBeAdded()
It does not make a difference in functionality, but after engineAdded() the server won't wait on a mutex anymore. Before this change, if you managed to send a message to the V4 debugger after the server had called aboutToBeAdded(), but before it had stopped waiting, you could produce a deadlock by scheduling an event for the GUI thread that was never delivered. This is a cherry-pick of 18c4295e25503ae637a715858de5c94a3d105a92 from 5.7 as apparently the problem also occurs in 5.6. Change-Id: Ie2343e6da4bd0b8956d41ff8ebd4d7594616ebd1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
-rw-r--r--src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp4
-rw-r--r--src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp
index e9bcd772e5..7a9d4a66a4 100644
--- a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp
+++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp
@@ -611,7 +611,7 @@ QV4DebugServiceImpl::~QV4DebugServiceImpl()
qDeleteAll(handlers);
}
-void QV4DebugServiceImpl::engineAboutToBeAdded(QQmlEngine *engine)
+void QV4DebugServiceImpl::engineAdded(QQmlEngine *engine)
{
QMutexLocker lock(&m_configMutex);
if (engine) {
@@ -628,7 +628,7 @@ void QV4DebugServiceImpl::engineAboutToBeAdded(QQmlEngine *engine)
}
}
}
- QQmlConfigurableDebugService<QV4DebugService>::engineAboutToBeAdded(engine);
+ QQmlConfigurableDebugService<QV4DebugService>::engineAdded(engine);
}
void QV4DebugServiceImpl::engineAboutToBeRemoved(QQmlEngine *engine)
diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.h b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.h
index 658b1b3998..fafe7d90bf 100644
--- a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.h
+++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.h
@@ -70,7 +70,7 @@ public:
explicit QV4DebugServiceImpl(QObject *parent = 0);
~QV4DebugServiceImpl();
- void engineAboutToBeAdded(QQmlEngine *engine);
+ void engineAdded(QQmlEngine *engine);
void engineAboutToBeRemoved(QQmlEngine *engine);
void stateAboutToBeChanged(State state);