aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/debugger/qqmldebugserver.cpp
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@nokia.com>2012-04-24 13:31:17 +0200
committerQt by Nokia <qt-info@nokia.com>2012-04-25 11:46:05 +0200
commita5d4efbc0035a0a3356e6d69a7b7b1c2d17ff253 (patch)
treee03c622ec2d78d4b8dbc2cc44d890282d6d5044d /src/qml/debugger/qqmldebugserver.cpp
parentb8bb9d7561b6be0557cde93ba3c5390a50f14087 (diff)
Debugger: Fix race condition in block mode, QQmlDebugServer
Make sure that the first message hasn't already arrived before we call d->messageArrivedCondition.wait(). Change-Id: I0d3df9adbd41f71df5c1c7d6df90c0037f494514 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Diffstat (limited to 'src/qml/debugger/qqmldebugserver.cpp')
-rw-r--r--src/qml/debugger/qqmldebugserver.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/qml/debugger/qqmldebugserver.cpp b/src/qml/debugger/qqmldebugserver.cpp
index fccb712217..d49d04f595 100644
--- a/src/qml/debugger/qqmldebugserver.cpp
+++ b/src/qml/debugger/qqmldebugserver.cpp
@@ -303,14 +303,13 @@ QQmlDebugServer *QQmlDebugServer::instance()
qQmlDebugServer->moveToThread(thread);
thread->setPluginName(pluginName);
thread->setPort(port, block, hostAddress);
+
+ QQmlDebugServerPrivate *d = qQmlDebugServer->d_func();
+ QMutexLocker locker(&d->messageArrivedMutex);
thread->start();
- if (block) {
- QQmlDebugServerPrivate *d = qQmlDebugServer->d_func();
- d->messageArrivedMutex.lock();
+ if (block)
d->messageArrivedCondition.wait(&d->messageArrivedMutex);
- d->messageArrivedMutex.unlock();
- }
} else {
qWarning() << QString(QLatin1String(