aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmakeprojectmanager
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmakeprojectmanager')
-rw-r--r--src/plugins/qmakeprojectmanager/qmakeproject.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp
index d424e7da95..3e07239d9d 100644
--- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp
@@ -502,8 +502,13 @@ void QmakeBuildSystem::startAsyncTimer(QmakeProFile::AsyncUpdateDelay delay)
void QmakeBuildSystem::incrementPendingEvaluateFutures()
{
- if (m_pendingEvaluateFuturesCount == 0)
- m_guard = guardParsingRun();
+ if (m_pendingEvaluateFuturesCount == 0) {
+ // The guard actually might already guard the project if this
+ // here is the re-start of a previously aborted parse due to e.g.
+ // changing build directories while parsing.
+ if (!m_guard.guardsProject())
+ m_guard = guardParsingRun();
+ }
++m_pendingEvaluateFuturesCount;
m_asyncUpdateFutureInterface.setProgressRange(m_asyncUpdateFutureInterface.progressMinimum(),
m_asyncUpdateFutureInterface.progressMaximum() + 1);