diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp index a48fd03e2a7ed6f45bdec8457fbb080e67db1f50..20de05d7766d91828d568b092fbe62b46a32bd50 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.cpp +++ b/src/plugins/qt4projectmanager/qt4nodes.cpp @@ -1299,6 +1299,7 @@ void Qt4ProFileNode::asyncUpdate() { m_project->incrementPendingEvaluateFutures(); setupReader(); + m_parseFutureWatcher.waitForFinished(); QFuture<bool> future = QtConcurrent::run(&Qt4ProFileNode::asyncEvaluate, this); m_parseFutureWatcher.setFuture(future); } diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 7758d40080c790068e71121bbcd57ca624babdb0..534b1c77c18e596424c88dc61539e3e7b63c3d70 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -628,6 +628,8 @@ void Qt4Project::update() void Qt4Project::scheduleAsyncUpdate(Qt4ProFileNode *node) { + if (m_asyncUpdateState == ShuttingDown) + return; if (debug) qDebug()<<"schduleAsyncUpdate (node)"; Q_ASSERT(m_asyncUpdateState != NoState); @@ -694,6 +696,8 @@ void Qt4Project::scheduleAsyncUpdate() { if (debug) qDebug()<<"scheduleAsyncUpdate"; + if (m_asyncUpdateState == ShuttingDown) + return; Q_ASSERT(m_asyncUpdateState != NoState); if (m_cancelEvaluate) { // we are in progress of canceling // and will start the evaluation after that