From 45be40540801bc760b09d731958ba646e4eb946c Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 10 Nov 2015 17:52:28 +0100 Subject: [PATCH] Document performance of QMutex Change-Id: I4de2fd5ba717975b5de98ffe7ca6348afbed1b2f Reviewed-by: Marc Mutz --- src/corelib/thread/qmutex.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/corelib/thread/qmutex.cpp b/src/corelib/thread/qmutex.cpp index 742a572bef..fa3bb080ae 100644 --- a/src/corelib/thread/qmutex.cpp +++ b/src/corelib/thread/qmutex.cpp @@ -139,6 +139,11 @@ public: lock calls unlock(). A non-blocking alternative to lock() is tryLock(). + QMutex is optimized to be fast in the non-contended case. A non-recursive + QMutex will not allocate memory if there is no contention on that mutex. + It is constructed and destroyed with almost no overhead, + which means it is fine to have many mutexes as part of other classes. + \sa QMutexLocker, QReadWriteLock, QSemaphore, QWaitCondition */ @@ -165,6 +170,8 @@ public: a thread may only lock a mutex once. The default is QMutex::NonRecursive. + Recursive mutexes are slower and take more memory than non-recursive ones. + \sa lock(), unlock() */ QMutex::QMutex(RecursionMode mode)