diff options
author | Sona Kurazyan <sona.kurazyan@qt.io> | 2020-10-08 12:19:13 +0200 |
---|---|---|
committer | Sona Kurazyan <sona.kurazyan@qt.io> | 2020-10-12 13:51:49 +0200 |
commit | 306931349296747eeb469e29908e2ab589de89fd (patch) | |
tree | a9f0fbd57533d556395acf357df465b4daf91125 /src/concurrent | |
parent | 4a981b9bdb6d512ac077ecdeaf478fc9a5792d17 (diff) |
Eliminate the extra copy in QtConcurrent's blocking methods
Use QFuture::takeResult() instead of QFuture::result() for returning the
resulting sequence from the blocking methods of QtConcurrent.
Change-Id: I0b623ee1ad8bda6789f329dcd63a46acda924539
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/concurrent')
-rw-r--r-- | src/concurrent/qtconcurrentfilter.h | 32 | ||||
-rw-r--r-- | src/concurrent/qtconcurrentmap.h | 32 |
2 files changed, 32 insertions, 32 deletions
diff --git a/src/concurrent/qtconcurrentfilter.h b/src/concurrent/qtconcurrentfilter.h index a85cbc0224..8a17487466 100644 --- a/src/concurrent/qtconcurrentfilter.h +++ b/src/concurrent/qtconcurrentfilter.h @@ -365,7 +365,7 @@ ResultType blockingFilteredReduced(QThreadPool *pool, { QFuture<ResultType> future = startFilteredReduced<ResultType>( pool, std::forward<Sequence>(sequence), keep, reduce, options); - return future.result(); + return future.takeResult(); } template <typename ResultType, typename Sequence, typename KeepFunctor, typename ReduceFunctor> @@ -377,7 +377,7 @@ ResultType blockingFilteredReduced(Sequence &&sequence, { QFuture<ResultType> future = startFilteredReduced<ResultType>( QThreadPool::globalInstance(), std::forward<Sequence>(sequence), keep, reduce, options); - return future.result(); + return future.takeResult(); } template <typename ResultType, typename Sequence, typename KeepFunctor, typename ReduceFunctor, @@ -394,7 +394,7 @@ ResultType blockingFilteredReduced(QThreadPool *pool, QFuture<ResultType> future = startFilteredReduced<ResultType>( pool, std::forward<Sequence>(sequence), keep, reduce, ResultType(std::forward<InitialValueType>(initialValue)), options); - return future.result(); + return future.takeResult(); } template <typename ResultType, typename Sequence, typename KeepFunctor, typename ReduceFunctor, @@ -410,7 +410,7 @@ ResultType blockingFilteredReduced(Sequence &&sequence, QFuture<ResultType> future = startFilteredReduced<ResultType>( QThreadPool::globalInstance(), std::forward<Sequence>(sequence), keep, reduce, ResultType(std::forward<InitialValueType>(initialValue)), options); - return future.result(); + return future.takeResult(); } #ifndef Q_CLANG_QDOC @@ -425,7 +425,7 @@ ResultType blockingFilteredReduced(QThreadPool *pool, { QFuture<ResultType> future = startFilteredReduced<ResultType>( pool, std::forward<Sequence>(sequence), keep, reduce, options); - return future.result(); + return future.takeResult(); } template <typename Sequence, typename KeepFunctor, typename ReduceFunctor, @@ -438,7 +438,7 @@ ResultType blockingFilteredReduced(Sequence &&sequence, { QFuture<ResultType> future = startFilteredReduced<ResultType>( QThreadPool::globalInstance(), std::forward<Sequence>(sequence), keep, reduce, options); - return future.result(); + return future.takeResult(); } template <typename Sequence, typename KeepFunctor, typename ReduceFunctor, @@ -456,7 +456,7 @@ ResultType blockingFilteredReduced(QThreadPool *pool, QFuture<ResultType> future = startFilteredReduced<ResultType>( pool, std::forward<Sequence>(sequence), keep, reduce, ResultType(std::forward<InitialValueType>(initialValue)), options); - return future.result(); + return future.takeResult(); } template <typename Sequence, typename KeepFunctor, typename ReduceFunctor, @@ -473,7 +473,7 @@ ResultType blockingFilteredReduced(Sequence &&sequence, QFuture<ResultType> future = startFilteredReduced<ResultType>( QThreadPool::globalInstance(), std::forward<Sequence>(sequence), keep, reduce, ResultType(std::forward<InitialValueType>(initialValue)), options); - return future.result(); + return future.takeResult(); } #endif @@ -489,7 +489,7 @@ ResultType blockingFilteredReduced(QThreadPool *pool, { QFuture<ResultType> future = startFilteredReduced<ResultType>(pool, begin, end, keep, reduce, options); - return future.result(); + return future.takeResult(); } template <typename ResultType, typename Iterator, typename KeepFunctor, typename ReduceFunctor> @@ -502,7 +502,7 @@ ResultType blockingFilteredReduced(Iterator begin, { QFuture<ResultType> future = startFilteredReduced<ResultType>(QThreadPool::globalInstance(), begin, end, keep, reduce, options); - return future.result(); + return future.takeResult(); } template <typename ResultType, typename Iterator, typename KeepFunctor, typename ReduceFunctor, @@ -519,7 +519,7 @@ ResultType blockingFilteredReduced(QThreadPool *pool, { QFuture<ResultType> future = startFilteredReduced<ResultType>(pool, begin, end, keep, reduce, ResultType(std::forward<InitialValueType>(initialValue)), options); - return future.result(); + return future.takeResult(); } template <typename ResultType, typename Iterator, typename KeepFunctor, typename ReduceFunctor, @@ -535,7 +535,7 @@ ResultType blockingFilteredReduced(Iterator begin, { QFuture<ResultType> future = startFilteredReduced<ResultType>(QThreadPool::globalInstance(), begin, end, keep, reduce, ResultType(std::forward<InitialValueType>(initialValue)), options); - return future.result(); + return future.takeResult(); } #ifndef Q_CLANG_QDOC @@ -551,7 +551,7 @@ ResultType blockingFilteredReduced(QThreadPool *pool, { QFuture<ResultType> future = startFilteredReduced<ResultType>(pool, begin, end, keep, reduce, options); - return future.result(); + return future.takeResult(); } template <typename Iterator, typename KeepFunctor, typename ReduceFunctor, @@ -565,7 +565,7 @@ ResultType blockingFilteredReduced(Iterator begin, { QFuture<ResultType> future = startFilteredReduced<ResultType>(QThreadPool::globalInstance(), begin, end, keep, reduce, options); - return future.result(); + return future.takeResult(); } template <typename Iterator, typename KeepFunctor, typename ReduceFunctor, @@ -582,7 +582,7 @@ ResultType blockingFilteredReduced(QThreadPool *pool, { QFuture<ResultType> future = startFilteredReduced<ResultType>(pool, begin, end, keep, reduce, ResultType(std::forward<InitialValueType>(initialValue)), options); - return future.result(); + return future.takeResult(); } template <typename Iterator, typename KeepFunctor, typename ReduceFunctor, @@ -599,7 +599,7 @@ ResultType blockingFilteredReduced(Iterator begin, { QFuture<ResultType> future = startFilteredReduced<ResultType>(QThreadPool::globalInstance(), begin, end, keep, reduce, ResultType(std::forward<InitialValueType>(initialValue)), options); - return future.result(); + return future.takeResult(); } #endif diff --git a/src/concurrent/qtconcurrentmap.h b/src/concurrent/qtconcurrentmap.h index e7c188fb8c..2b475dced1 100644 --- a/src/concurrent/qtconcurrentmap.h +++ b/src/concurrent/qtconcurrentmap.h @@ -399,7 +399,7 @@ ResultType blockingMappedReduced(QThreadPool *pool, QFuture<ResultType> future = QtConcurrent::startMappedReduced <QtPrivate::MapResultType<Sequence, MapFunctor>, ResultType> (pool, std::forward<Sequence>(sequence), map, reduce, options); - return future.result(); + return future.takeResult(); } template <typename ResultType, typename Sequence, typename MapFunctor, typename ReduceFunctor> @@ -412,7 +412,7 @@ ResultType blockingMappedReduced(Sequence &&sequence, QFuture<ResultType> future = QtConcurrent::startMappedReduced <QtPrivate::MapResultType<Sequence, MapFunctor>, ResultType> (QThreadPool::globalInstance(), std::forward<Sequence>(sequence), map, reduce, options); - return future.result(); + return future.takeResult(); } template <typename ResultType, typename Sequence, typename MapFunctor, typename ReduceFunctor, @@ -430,7 +430,7 @@ ResultType blockingMappedReduced(QThreadPool *pool, <QtPrivate::MapResultType<Sequence, MapFunctor>, ResultType> (pool, std::forward<Sequence>(sequence), map, reduce, ResultType(std::forward<InitialValueType>(initialValue)), options); - return future.result(); + return future.takeResult(); } template <typename ResultType, typename Sequence, typename MapFunctor, typename ReduceFunctor, @@ -447,7 +447,7 @@ ResultType blockingMappedReduced(Sequence &&sequence, <QtPrivate::MapResultType<Sequence, MapFunctor>, ResultType> (QThreadPool::globalInstance(), std::forward<Sequence>(sequence), map, reduce, ResultType(std::forward<InitialValueType>(initialValue)), options); - return future.result(); + return future.takeResult(); } template <typename MapFunctor, typename ReduceFunctor, typename Sequence, @@ -462,7 +462,7 @@ ResultType blockingMappedReduced(QThreadPool *pool, QFuture<ResultType> future = QtConcurrent::startMappedReduced <QtPrivate::MapResultType<Sequence, MapFunctor>, ResultType> (pool, std::forward<Sequence>(sequence), map, reduce, options); - return future.result(); + return future.takeResult(); } template <typename MapFunctor, typename ReduceFunctor, typename Sequence, @@ -476,7 +476,7 @@ ResultType blockingMappedReduced(Sequence &&sequence, QFuture<ResultType> future = QtConcurrent::startMappedReduced <QtPrivate::MapResultType<Sequence, MapFunctor>, ResultType> (QThreadPool::globalInstance(), std::forward<Sequence>(sequence), map, reduce, options); - return future.result(); + return future.takeResult(); } template <typename MapFunctor, typename ReduceFunctor, typename Sequence, @@ -495,7 +495,7 @@ ResultType blockingMappedReduced(QThreadPool *pool, <QtPrivate::MapResultType<Sequence, MapFunctor>, ResultType> (pool, std::forward<Sequence>(sequence), map, reduce, ResultType(std::forward<InitialValueType>(initialValue)), options); - return future.result(); + return future.takeResult(); } template <typename MapFunctor, typename ReduceFunctor, typename Sequence, @@ -513,7 +513,7 @@ ResultType blockingMappedReduced(Sequence &&sequence, <QtPrivate::MapResultType<Sequence, MapFunctor>, ResultType> (QThreadPool::globalInstance(), std::forward<Sequence>(sequence), map, reduce, ResultType(std::forward<InitialValueType>(initialValue)), options); - return future.result(); + return future.takeResult(); } // blockingMappedReduced() for iterator ranges @@ -529,7 +529,7 @@ ResultType blockingMappedReduced(QThreadPool *pool, QFuture<ResultType> future = QtConcurrent::startMappedReduced <QtPrivate::MapResultType<Iterator, MapFunctor>, ResultType> (pool, begin, end, map, reduce, options); - return future.result(); + return future.takeResult(); } template <typename ResultType, typename Iterator, typename MapFunctor, typename ReduceFunctor> @@ -543,7 +543,7 @@ ResultType blockingMappedReduced(Iterator begin, QFuture<ResultType> future = QtConcurrent::startMappedReduced <QtPrivate::MapResultType<Iterator, MapFunctor>, ResultType> (QThreadPool::globalInstance(), begin, end, map, reduce, options); - return future.result(); + return future.takeResult(); } template <typename ResultType, typename Iterator, typename MapFunctor, typename ReduceFunctor, @@ -562,7 +562,7 @@ ResultType blockingMappedReduced(QThreadPool *pool, <QtPrivate::MapResultType<Iterator, MapFunctor>, ResultType> (pool, begin, end, map, reduce, ResultType(std::forward<InitialValueType>(initialValue)), options); - return future.result(); + return future.takeResult(); } template <typename ResultType, typename Iterator, typename MapFunctor, typename ReduceFunctor, @@ -580,7 +580,7 @@ ResultType blockingMappedReduced(Iterator begin, <QtPrivate::MapResultType<Iterator, MapFunctor>, ResultType> (QThreadPool::globalInstance(), begin, end, map, reduce, ResultType(std::forward<InitialValueType>(initialValue)), options); - return future.result(); + return future.takeResult(); } template <typename Iterator, typename MapFunctor, typename ReduceFunctor, @@ -596,7 +596,7 @@ ResultType blockingMappedReduced(QThreadPool *pool, QFuture<ResultType> future = QtConcurrent::startMappedReduced <QtPrivate::MapResultType<Iterator, MapFunctor>, ResultType> (pool, begin, end, map, reduce, options); - return future.result(); + return future.takeResult(); } template <typename Iterator, typename MapFunctor, typename ReduceFunctor, @@ -611,7 +611,7 @@ ResultType blockingMappedReduced(Iterator begin, QFuture<ResultType> future = QtConcurrent::startMappedReduced <QtPrivate::MapResultType<Iterator, MapFunctor>, ResultType> (QThreadPool::globalInstance(), begin, end, map, reduce, options); - return future.result(); + return future.takeResult(); } template <typename Iterator, typename MapFunctor, typename ReduceFunctor, @@ -631,7 +631,7 @@ ResultType blockingMappedReduced(QThreadPool *pool, <QtPrivate::MapResultType<Iterator, MapFunctor>, ResultType> (pool, begin, end, map, reduce, ResultType(std::forward<InitialValueType>(initialValue)), options); - return future.result(); + return future.takeResult(); } template <typename Iterator, typename MapFunctor, typename ReduceFunctor, @@ -650,7 +650,7 @@ ResultType blockingMappedReduced(Iterator begin, <QtPrivate::MapResultType<Iterator, MapFunctor>, ResultType> (QThreadPool::globalInstance(), begin, end, map, reduce, ResultType(std::forward<InitialValueType>(initialValue)), options); - return future.result(); + return future.takeResult(); } // mapped() for sequences with a different putput sequence type. |