summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/jobs/jobrunner.cpp1
-rw-r--r--src/core/jobs/qthreadpooler.cpp3
2 files changed, 3 insertions, 1 deletions
diff --git a/src/core/jobs/jobrunner.cpp b/src/core/jobs/jobrunner.cpp
index d1cfe234b..ab5555585 100644
--- a/src/core/jobs/jobrunner.cpp
+++ b/src/core/jobs/jobrunner.cpp
@@ -66,7 +66,6 @@ void JobRunner::run()
while (!m_abort.load()) {
if (const QSharedPointer<TaskInterface> task = m_pooler->nextTask()) {
- m_pooler->startRunning();
task->run(task, this);
m_pooler->stopRunning();
} else {
diff --git a/src/core/jobs/qthreadpooler.cpp b/src/core/jobs/qthreadpooler.cpp
index 1620185b5..e187e8bff 100644
--- a/src/core/jobs/qthreadpooler.cpp
+++ b/src/core/jobs/qthreadpooler.cpp
@@ -176,6 +176,9 @@ QSharedPointer<TaskInterface> QThreadPooler::nextTask()
const QSharedPointer<TaskInterface> &candidate = d->m_taskQueue.at(i);
if (!hasDependencies(candidate)) {
task = candidate;
+ // Increment running thread counter before removing item from queue
+ // so that isIdle test keeps up
+ d->incRunningThreads();
d->m_taskQueue.removeAt(i);
break;