summaryrefslogtreecommitdiff
path: root/src/lib/api/internaljobs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/api/internaljobs.cpp')
-rw-r--r--src/lib/api/internaljobs.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lib/api/internaljobs.cpp b/src/lib/api/internaljobs.cpp
index af4901692..4fb1a323c 100644
--- a/src/lib/api/internaljobs.cpp
+++ b/src/lib/api/internaljobs.cpp
@@ -53,6 +53,12 @@
namespace qbs {
namespace Internal {
+static void unlockBuildGraph(const TopLevelProjectPtr &project)
+{
+ QBS_ASSERT(project->locked, return);
+ project->locked = false;
+}
+
class JobObserver : public ProgressObserver
{
public:
@@ -358,6 +364,7 @@ void InternalBuildJob::handleFinished()
void InternalBuildJob::emitFinished()
{
+ unlockBuildGraph(project());
emit finished(this);
}
@@ -383,6 +390,7 @@ void InternalCleanJob::start()
setError(error);
}
storeBuildGraph();
+ unlockBuildGraph(project());
emit finished(this);
}
@@ -412,6 +420,7 @@ void InternalInstallJob::start()
} catch (const ErrorInfo &error) {
setError(error);
}
+ unlockBuildGraph(m_project);
emit finished(this);
}