diff options
author | The Qt Project <gerrit-noreply@qt-project.org> | 2019-10-14 08:49:14 +0000 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2019-10-14 08:49:14 +0000 |
commit | eba59bfd14d0ea29f36e80be81137d26cc67e23a (patch) | |
tree | 69ff8601b3d4a62bea38e1a32245f45cb744aaac /src/concurrent/qtconcurrentreducekernel.h | |
parent | f03ac58b1ecc24f01cb83b275a9b6088f9483545 (diff) | |
parent | f4b4c4f79b629498f3cddbbc10df8c1b4d6020d9 (diff) |
Merge "Merge remote-tracking branch 'origin/wip/qt6' into wip/cmake" into wip/cmake
Diffstat (limited to 'src/concurrent/qtconcurrentreducekernel.h')
-rw-r--r-- | src/concurrent/qtconcurrentreducekernel.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/concurrent/qtconcurrentreducekernel.h b/src/concurrent/qtconcurrentreducekernel.h index 0fbc40e02e..8f9a938952 100644 --- a/src/concurrent/qtconcurrentreducekernel.h +++ b/src/concurrent/qtconcurrentreducekernel.h @@ -52,6 +52,8 @@ #include <QtCore/qthreadpool.h> #include <QtCore/qvector.h> +#include <mutex> + QT_BEGIN_NAMESPACE @@ -147,7 +149,7 @@ public: ReduceResultType &r, const IntermediateResults<T> &result) { - QMutexLocker locker(&mutex); + std::unique_lock<QMutex> locker(mutex); if (!canReduce(result.begin)) { ++resultsMapSize; resultsMap.insert(result.begin, result); @@ -161,7 +163,7 @@ public: // reduce this result locker.unlock(); reduceResult(reduce, r, result); - locker.relock(); + locker.lock(); // reduce all stored results as well while (!resultsMap.isEmpty()) { @@ -170,7 +172,7 @@ public: locker.unlock(); reduceResults(reduce, r, resultsMapCopy); - locker.relock(); + locker.lock(); resultsMapSize -= resultsMapCopy.size(); } @@ -180,7 +182,7 @@ public: // reduce this result locker.unlock(); reduceResult(reduce, r, result); - locker.relock(); + locker.lock(); // OrderedReduce progress += result.end - result.begin; @@ -193,7 +195,7 @@ public: locker.unlock(); reduceResult(reduce, r, it.value()); - locker.relock(); + locker.lock(); --resultsMapSize; progress += it.value().end - it.value().begin; |