Add a QMutex::isRecursive() const noexcept
This is source- and binary-compatible, including the marking of the existing function as noexcept. [ChangeLog][QtCore][QMutex] Made the isRecursive() method be a const function so that it can be called in const QMutex objects too. Change-Id: Ifea6e497f11a461db432ffff1448bead97c08f92 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
This commit is contained in:
parent
75d65600f9
commit
0b1b06ffc0
@ -282,18 +282,21 @@ void QMutex::unlock() Q_DECL_NOTHROW
|
|||||||
unlockInternal();
|
unlockInternal();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
bool QBasicMutex::isRecursive() Q_DECL_NOTHROW
|
||||||
\fn void QMutex::isRecursive()
|
|
||||||
\since 5.0
|
|
||||||
|
|
||||||
Returns \c true if the mutex is recursive
|
|
||||||
|
|
||||||
*/
|
|
||||||
bool QBasicMutex::isRecursive()
|
|
||||||
{
|
{
|
||||||
return QT_PREPEND_NAMESPACE(isRecursive)(d_ptr.loadAcquire());
|
return QT_PREPEND_NAMESPACE(isRecursive)(d_ptr.loadAcquire());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\overload
|
||||||
|
\since 5.7
|
||||||
|
|
||||||
|
Returns \c true if the mutex is recursive
|
||||||
|
*/
|
||||||
|
bool QBasicMutex::isRecursive() const Q_DECL_NOTHROW
|
||||||
|
{
|
||||||
|
return QT_PREPEND_NAMESPACE(isRecursive)(d_ptr.loadAcquire());
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\class QMutexLocker
|
\class QMutexLocker
|
||||||
|
@ -75,7 +75,8 @@ public:
|
|||||||
return fastTryLock();
|
return fastTryLock();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isRecursive(); //### Qt6: mark const
|
bool isRecursive() Q_DECL_NOTHROW; //### Qt6: remove me
|
||||||
|
bool isRecursive() const Q_DECL_NOTHROW;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
inline bool fastTryLock() Q_DECL_NOTHROW {
|
inline bool fastTryLock() Q_DECL_NOTHROW {
|
||||||
@ -104,7 +105,8 @@ private:
|
|||||||
friend class QMutexData;
|
friend class QMutexData;
|
||||||
};
|
};
|
||||||
|
|
||||||
class Q_CORE_EXPORT QMutex : public QBasicMutex {
|
class Q_CORE_EXPORT QMutex : public QBasicMutex
|
||||||
|
{
|
||||||
public:
|
public:
|
||||||
enum RecursionMode { NonRecursive, Recursive };
|
enum RecursionMode { NonRecursive, Recursive };
|
||||||
explicit QMutex(RecursionMode mode = NonRecursive);
|
explicit QMutex(RecursionMode mode = NonRecursive);
|
||||||
@ -114,7 +116,8 @@ public:
|
|||||||
bool tryLock(int timeout = 0) QT_MUTEX_LOCK_NOEXCEPT;
|
bool tryLock(int timeout = 0) QT_MUTEX_LOCK_NOEXCEPT;
|
||||||
void unlock() Q_DECL_NOTHROW;
|
void unlock() Q_DECL_NOTHROW;
|
||||||
|
|
||||||
using QBasicMutex::isRecursive;
|
bool isRecursive() const Q_DECL_NOTHROW
|
||||||
|
{ return QBasicMutex::isRecursive(); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(QMutex)
|
Q_DISABLE_COPY(QMutex)
|
||||||
@ -187,7 +190,7 @@ public:
|
|||||||
inline void lock() Q_DECL_NOTHROW {}
|
inline void lock() Q_DECL_NOTHROW {}
|
||||||
inline bool tryLock(int timeout = 0) Q_DECL_NOTHROW { Q_UNUSED(timeout); return true; }
|
inline bool tryLock(int timeout = 0) Q_DECL_NOTHROW { Q_UNUSED(timeout); return true; }
|
||||||
inline void unlock() Q_DECL_NOTHROW {}
|
inline void unlock() Q_DECL_NOTHROW {}
|
||||||
inline bool isRecursive() Q_DECL_NOTHROW { return true; }
|
inline bool isRecursive() const Q_DECL_NOTHROW { return true; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(QMutex)
|
Q_DISABLE_COPY(QMutex)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user