Rewrite CWorker::waitForFinished using std::future<void> instead of QWaitCondition.

This commit is contained in:
Mathew Sutcliffe
2015-06-21 19:06:25 +01:00
parent 95fe93a83c
commit 7a37c86782

View File

@@ -8,7 +8,7 @@
*/
#include "worker.h"
#include <QWaitCondition>
#include <future>
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<void> promise;
then([ & ] { promise.set_value(); });
promise.get_future().wait();
}
void CContinuousWorker::start(QThread::Priority priority)