diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/jobs/jobrunner.cpp | 1 | ||||
-rw-r--r-- | src/core/jobs/qthreadpooler.cpp | 3 |
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; |