aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/debugger/qqmldebugservice.cpp
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@nokia.com>2012-04-24 14:39:38 +0200
committerQt by Nokia <qt-info@nokia.com>2012-04-25 14:26:42 +0200
commit0d284ae2d62707e6c35c8d97ca73e974d35c4167 (patch)
treed41e0e0c64486a43c45db2c6a8ad3e1a9fba6ec9 /src/qml/debugger/qqmldebugservice.cpp
parente1583664fd8a9eb66e37bdd2e1476bbf90383a4c (diff)
Debugger: Fix race conditions in block mode
Using waitForMessage() in the constructor after registerService() is _not_ safe: You might get the first message already after the registerService() and before the waitForMessage() call. Instead, use QMutex/QWaitCondition to block the initialization. Also make the use of the block mode explicit, since the service might already be enabled also for non-blocking modes ... Change-Id: I387bfe0627c80e2029acff71f86d12cd9ab58de1 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Diffstat (limited to 'src/qml/debugger/qqmldebugservice.cpp')
-rw-r--r--src/qml/debugger/qqmldebugservice.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/qml/debugger/qqmldebugservice.cpp b/src/qml/debugger/qqmldebugservice.cpp
index 45948490cf..1fe5aa32eb 100644
--- a/src/qml/debugger/qqmldebugservice.cpp
+++ b/src/qml/debugger/qqmldebugservice.cpp
@@ -213,6 +213,12 @@ bool QQmlDebugService::hasDebuggingClient()
&& QQmlDebugServer::instance()->hasDebuggingClient();
}
+bool QQmlDebugService::blockingMode()
+{
+ return QQmlDebugServer::instance() != 0
+ && QQmlDebugServer::instance()->blockingMode();
+}
+
QString QQmlDebugService::objectToString(QObject *obj)
{
if(!obj)
@@ -243,16 +249,6 @@ void QQmlDebugService::sendMessages(const QList<QByteArray> &messages)
d->server->sendMessages(this, messages);
}
-bool QQmlDebugService::waitForMessage()
-{
- Q_D(QQmlDebugService);
-
- if (state() != Enabled)
- return false;
-
- return d->server->waitForMessage(this);
-}
-
void QQmlDebugService::stateAboutToBeChanged(State)
{
}