Deprecate QMutex in recursive mode
Use QRecursiveMutex instead. Pick-to: 5.15 Change-Id: I862fc2b3143deeb5c96dc8d445be5f9fa2535670 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This commit is contained in:
parent
10bc093d4f
commit
0e681064b5
@ -152,6 +152,7 @@ public:
|
||||
|
||||
/*!
|
||||
\enum QMutex::RecursionMode
|
||||
\obsolete Use QRecursiveMutex to create a recursive mutex.
|
||||
|
||||
\value Recursive In this mode, a thread can lock the same mutex
|
||||
multiple times and the mutex won't be unlocked
|
||||
@ -173,6 +174,7 @@ public:
|
||||
|
||||
/*!
|
||||
Constructs a new mutex. The mutex is created in an unlocked state.
|
||||
\obsolete Use QRecursiveMutex to create a recursive mutex.
|
||||
|
||||
If \a mode is QMutex::Recursive, a thread can lock the same mutex
|
||||
multiple times and the mutex won't be unlocked until a
|
||||
@ -197,7 +199,7 @@ QMutex::QMutex(RecursionMode mode)
|
||||
QMutex::~QMutex()
|
||||
{
|
||||
QMutexData *d = d_ptr.loadRelaxed();
|
||||
if (isRecursive()) {
|
||||
if (QBasicMutex::isRecursive()) {
|
||||
delete static_cast<QRecursiveMutexPrivate *>(d);
|
||||
} else if (d) {
|
||||
#ifndef QT_LINUX_FUTEX
|
||||
|
@ -132,8 +132,16 @@ public:
|
||||
#else
|
||||
QMutex() { d_ptr.storeRelaxed(nullptr); }
|
||||
#endif
|
||||
#if QT_DEPRECATED_SINCE(5,15)
|
||||
enum RecursionMode { NonRecursive, Recursive };
|
||||
QT_DEPRECATED_VERSION_X(5, 15, "Use QRecursiveMutex instead of a recursive QMutex")
|
||||
explicit QMutex(RecursionMode mode);
|
||||
|
||||
QT_DEPRECATED_VERSION_X(5, 15, "Use QRecursiveMutex instead of a recursive QMutex")
|
||||
bool isRecursive() const noexcept
|
||||
{ return QBasicMutex::isRecursive(); }
|
||||
#endif
|
||||
|
||||
~QMutex();
|
||||
|
||||
// BasicLockable concept
|
||||
@ -164,9 +172,6 @@ public:
|
||||
}
|
||||
#endif
|
||||
|
||||
bool isRecursive() const noexcept
|
||||
{ return QBasicMutex::isRecursive(); }
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(QMutex)
|
||||
friend class QMutexLocker;
|
||||
|
@ -213,7 +213,7 @@ bool QWaitCondition::wait(QMutex *mutex, QDeadlineTimer deadline)
|
||||
{
|
||||
if (! mutex)
|
||||
return false;
|
||||
if (mutex->isRecursive()) {
|
||||
if (static_cast<QBasicMutex *>(mutex)->isRecursive()) {
|
||||
qWarning("QWaitCondition: cannot wait on recursive mutexes");
|
||||
return false;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user