Small optimisation to recursive mutexes

A recursive mutex operates on top of a non-recursive mutex. Therefore,
we can bypass the test for recursive.

The end result is simply that the compiler can inline the locking and
unlocking a little better inside the lock() and unlock() functions

Change-Id: Ic06d1344ccd411c22cbdef74536f3a4d368d75d7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
This commit is contained in:
Thiago Macieira 2012-08-15 22:37:42 +02:00 committed by Qt by Nokia
parent 8e7b86de2c
commit 3717802653

View File

@ -520,7 +520,7 @@ bool QRecursiveMutexPrivate::lock(int timeout) QT_MUTEX_LOCK_NOEXCEPT
}
bool success = true;
if (timeout == -1) {
mutex.lock();
mutex.QBasicMutex::lock();
} else {
success = mutex.tryLock(timeout);
}
@ -539,7 +539,7 @@ void QRecursiveMutexPrivate::unlock() Q_DECL_NOTHROW
count--;
} else {
owner = 0;
mutex.unlock();
mutex.QBasicMutex::unlock();
}
}