diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp index a48fd03e2a7..20de05d7766 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 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 7758d40080c..534b1c77c18 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