QOrderedMutexLocker: plaster with [[nodiscard]]
It's a RAII class, and RAII classes should be marked [[nodiscard]] at the class as well as the ctor level. Task-number: QTBUG-104164 Change-Id: Ie88023ba7c57dad7c2116c1c19a80b908b3a9f4d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 123118f82958bb48cb9cf5f46b72c0298fe8c7f3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
281e067a62
commit
ecdd82ac34
@ -28,9 +28,10 @@ QT_BEGIN_NAMESPACE
|
|||||||
Locks 2 mutexes in a defined order, avoiding a recursive lock if
|
Locks 2 mutexes in a defined order, avoiding a recursive lock if
|
||||||
we're trying to lock the same mutex twice.
|
we're trying to lock the same mutex twice.
|
||||||
*/
|
*/
|
||||||
class QOrderedMutexLocker
|
class [[nodiscard]] QOrderedMutexLocker
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
Q_NODISCARD_CTOR
|
||||||
QOrderedMutexLocker(QBasicMutex *m1, QBasicMutex *m2)
|
QOrderedMutexLocker(QBasicMutex *m1, QBasicMutex *m2)
|
||||||
: mtx1((m1 == m2) ? m1 : (std::less<QBasicMutex *>()(m1, m2) ? m1 : m2)),
|
: mtx1((m1 == m2) ? m1 : (std::less<QBasicMutex *>()(m1, m2) ? m1 : m2)),
|
||||||
mtx2((m1 == m2) ? nullptr : (std::less<QBasicMutex *>()(m1, m2) ? m2 : m1)),
|
mtx2((m1 == m2) ? nullptr : (std::less<QBasicMutex *>()(m1, m2) ? m2 : m1)),
|
||||||
@ -50,6 +51,7 @@ public:
|
|||||||
|
|
||||||
QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_MOVE_AND_SWAP(QOrderedMutexLocker)
|
QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_MOVE_AND_SWAP(QOrderedMutexLocker)
|
||||||
|
|
||||||
|
Q_NODISCARD_CTOR
|
||||||
QOrderedMutexLocker(QOrderedMutexLocker &&other) noexcept
|
QOrderedMutexLocker(QOrderedMutexLocker &&other) noexcept
|
||||||
: mtx1(std::exchange(other.mtx1, nullptr))
|
: mtx1(std::exchange(other.mtx1, nullptr))
|
||||||
, mtx2(std::exchange(other.mtx2, nullptr))
|
, mtx2(std::exchange(other.mtx2, nullptr))
|
||||||
@ -147,11 +149,13 @@ private:
|
|||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
class QOrderedMutexLocker
|
class [[nodiscard]] QOrderedMutexLocker
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Q_DISABLE_COPY(QOrderedMutexLocker)
|
Q_DISABLE_COPY(QOrderedMutexLocker)
|
||||||
|
Q_NODISCARD_CTOR
|
||||||
QOrderedMutexLocker(QBasicMutex *, QBasicMutex *) {}
|
QOrderedMutexLocker(QBasicMutex *, QBasicMutex *) {}
|
||||||
|
Q_NODISCARD_CTOR
|
||||||
QOrderedMutexLocker(QOrderedMutexLocker &&) = default;
|
QOrderedMutexLocker(QOrderedMutexLocker &&) = default;
|
||||||
QOrderedMutexLocker& operator=(QOrderedMutexLocker &&other) = default;
|
QOrderedMutexLocker& operator=(QOrderedMutexLocker &&other) = default;
|
||||||
~QOrderedMutexLocker() {}
|
~QOrderedMutexLocker() {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user