diff options
Diffstat (limited to 'src/corelib/thread/qmutex.h')
-rw-r--r-- | src/corelib/thread/qmutex.h | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/corelib/thread/qmutex.h b/src/corelib/thread/qmutex.h index e10a3f8f3d..9423585f64 100644 --- a/src/corelib/thread/qmutex.h +++ b/src/corelib/thread/qmutex.h @@ -256,7 +256,8 @@ public: inline ~QMutexLocker() { - unlock(); + if (m_isLocked) + unlock(); } inline bool isLocked() const noexcept @@ -266,20 +267,16 @@ public: inline void unlock() noexcept { - if (!m_isLocked) - return; + Q_ASSERT(m_isLocked); m_mutex->unlock(); m_isLocked = false; } inline void relock() QT_MUTEX_LOCK_NOEXCEPT { - if (m_isLocked) - return; - if (m_mutex) { - m_mutex->lock(); - m_isLocked = true; - } + Q_ASSERT(!m_isLocked); + m_mutex->lock(); + m_isLocked = true; } inline void swap(QMutexLocker &other) noexcept |