summaryrefslogtreecommitdiffstats
path: root/src/corelib/thread/qmutexpool.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-06-16 07:30:02 +0200
committerLiang Qi <liang.qi@qt.io>2016-06-16 07:30:02 +0200
commitc4e472ea1037afde7b99d9132a49eb616cad240e (patch)
treec9e66fdda63a2e5c3f5a944d711e5c9845de33ac /src/corelib/thread/qmutexpool.cpp
parent7b23ebefb2360feb139ff6e10d2253396e58721e (diff)
parent6c1e352803a6efbd8b14e5296434e22165b65084 (diff)
Merge remote-tracking branch 'origin/5.7.0' into 5.7
Conflicts: src/corelib/tools/qsimd_p.h Change-Id: I7c6bfc5873d97ad7f51a540dd9c18b9359dde59f
Diffstat (limited to 'src/corelib/thread/qmutexpool.cpp')
-rw-r--r--src/corelib/thread/qmutexpool.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/corelib/thread/qmutexpool.cpp b/src/corelib/thread/qmutexpool.cpp
index 522fd5eac24..90b6989467c 100644
--- a/src/corelib/thread/qmutexpool.cpp
+++ b/src/corelib/thread/qmutexpool.cpp
@@ -92,10 +92,11 @@ Q_GLOBAL_STATIC_WITH_ARGS(QMutexPool, globalMutexPool, (QMutex::Recursive))
QMutexPool is destructed.
*/
QMutexPool::QMutexPool(QMutex::RecursionMode recursionMode, int size)
- : count(size),
- mutexes(new QAtomicPointer<QMutex>[size]()), // (): zero-initialize
- recursionMode(recursionMode)
+ : mutexes(size), recursionMode(recursionMode)
{
+ for (int index = 0; index < mutexes.count(); ++index) {
+ mutexes[index].store(0);
+ }
}
/*!
@@ -104,8 +105,8 @@ QMutexPool::QMutexPool(QMutex::RecursionMode recursionMode, int size)
*/
QMutexPool::~QMutexPool()
{
- qDeleteAll(mutexes, mutexes + count);
- delete[] mutexes;
+ for (int index = 0; index < mutexes.count(); ++index)
+ delete mutexes[index].load();
}
/*!