diff --git a/src/libs/utils/runextensions.h b/src/libs/utils/runextensions.h index e7b9dd6c939..9339f1a52ee 100644 --- a/src/libs/utils/runextensions.h +++ b/src/libs/utils/runextensions.h @@ -408,7 +408,10 @@ QFuture runAsync_internal(QThreadPool *pool, QFuture future = job->future(); if (pool) { job->setThreadPool(pool); - pool->start(job); + if (QThread::currentThread() == pool->thread()) + pool->start(job); + else + QMetaObject::invokeMethod(pool, [pool, job]() { pool->start(job); }, Qt::QueuedConnection); } else { auto thread = new Internal::RunnableThread(job); if (stackSize)