diff options
Diffstat (limited to 'src/corelib/thread/qfuturesynchronizer.h')
-rw-r--r-- | src/corelib/thread/qfuturesynchronizer.h | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/corelib/thread/qfuturesynchronizer.h b/src/corelib/thread/qfuturesynchronizer.h index 8b85e20038..a996362bfd 100644 --- a/src/corelib/thread/qfuturesynchronizer.h +++ b/src/corelib/thread/qfuturesynchronizer.h @@ -17,33 +17,34 @@ class QFutureSynchronizer Q_DISABLE_COPY(QFutureSynchronizer) public: - QFutureSynchronizer() : m_cancelOnWait(false) { } - explicit QFutureSynchronizer(const QFuture<T> &future) + Q_NODISCARD_CTOR QFutureSynchronizer() : m_cancelOnWait(false) { } + Q_NODISCARD_CTOR_X("Use future.waitForFinished() instead.") + explicit QFutureSynchronizer(QFuture<T> future) : m_cancelOnWait(false) - { addFuture(future); } + { addFuture(std::move(future)); } ~QFutureSynchronizer() { waitForFinished(); } - void setFuture(const QFuture<T> &future) + void setFuture(QFuture<T> future) { waitForFinished(); m_futures.clear(); - addFuture(future); + addFuture(std::move(future)); } - void addFuture(const QFuture<T> &future) + void addFuture(QFuture<T> future) { - m_futures.append(future); + m_futures.append(std::move(future)); } void waitForFinished() { if (m_cancelOnWait) { - for (int i = 0; i < m_futures.count(); ++i) { + for (int i = 0; i < m_futures.size(); ++i) { m_futures[i].cancel(); } } - for (int i = 0; i < m_futures.count(); ++i) { + for (int i = 0; i < m_futures.size(); ++i) { m_futures[i].waitForFinished(); } } |