From af7b39e3a7d0109a79562c856a5c2ec98bd49c21 Mon Sep 17 00:00:00 2001 From: dt <qtc-committer@nokia.com> Date: Mon, 25 Oct 2010 17:26:41 +0200 Subject: [PATCH] Qt4ProjectManager: Add some safety code Might, or might not fix Task-Nr: QTCREATORBUG-2361 --- src/plugins/qt4projectmanager/qt4nodes.cpp | 1 + src/plugins/qt4projectmanager/qt4project.cpp | 4 ++++ 2 files changed, 5 insertions(+) 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<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 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 -- GitLab