diff --git a/src/blackmisc/worker.cpp b/src/blackmisc/worker.cpp index d539ff348..37e90e70c 100644 --- a/src/blackmisc/worker.cpp +++ b/src/blackmisc/worker.cpp @@ -8,7 +8,7 @@ */ #include "worker.h" -#include +#include namespace BlackMisc { @@ -44,15 +44,9 @@ namespace BlackMisc void CWorkerBase::waitForFinished() Q_DECL_NOEXCEPT { - QMutex mutex; - QMutexLocker waitCondLock(&mutex); - QWaitCondition waitCond; - { - QMutexLocker finishedLock(&m_finishedMutex); - if (m_finished) { return; } - then([ & ] { mutex.lock(); mutex.unlock(); waitCond.wakeAll(); }); - } - waitCond.wait(&mutex); + std::promise promise; + then([ & ] { promise.set_value(); }); + promise.get_future().wait(); } void CContinuousWorker::start(QThread::Priority priority)