diff options
author | Kai Koehne <kai.koehne@nokia.com> | 2012-04-24 13:31:17 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-25 11:46:05 +0200 |
commit | a5d4efbc0035a0a3356e6d69a7b7b1c2d17ff253 (patch) | |
tree | e03c622ec2d78d4b8dbc2cc44d890282d6d5044d /src/qml/debugger/qqmldebugserver.cpp | |
parent | b8bb9d7561b6be0557cde93ba3c5390a50f14087 (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.cpp | 9 |
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( |