summaryrefslogtreecommitdiffstats
path: root/src/corelib/ipc/qsharedmemory_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/ipc/qsharedmemory_p.h')
-rw-r--r--src/corelib/ipc/qsharedmemory_p.h19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/corelib/ipc/qsharedmemory_p.h b/src/corelib/ipc/qsharedmemory_p.h
index 3a6cd8c137..9ee4c49e6c 100644
--- a/src/corelib/ipc/qsharedmemory_p.h
+++ b/src/corelib/ipc/qsharedmemory_p.h
@@ -41,13 +41,23 @@ class QSharedMemoryPrivate;
*/
class QSharedMemoryLocker
{
-
+ Q_DISABLE_COPY(QSharedMemoryLocker)
public:
- inline QSharedMemoryLocker(QSharedMemory *sharedMemory) : q_sm(sharedMemory)
+ Q_NODISCARD_CTOR explicit QSharedMemoryLocker(QSharedMemory *sharedMemory)
+ : q_sm(sharedMemory)
{
Q_ASSERT(q_sm);
}
+ Q_NODISCARD_CTOR QSharedMemoryLocker(QSharedMemoryLocker &&other) noexcept
+ : q_sm{std::exchange(other.q_sm, nullptr)}
+ {}
+
+ QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_MOVE_AND_SWAP(QSharedMemoryLocker)
+
+ void swap(QSharedMemoryLocker &other) noexcept
+ { qt_ptr_swap(q_sm, other.q_sm); }
+
inline ~QSharedMemoryLocker()
{
if (q_sm)
@@ -63,6 +73,9 @@ public:
}
private:
+ friend void swap(QSharedMemoryLocker &lhs, QSharedMemoryLocker &rhs) noexcept
+ { lhs.swap(rhs); }
+
QSharedMemory *q_sm;
};
#endif // QT_CONFIG(systemsemaphore)
@@ -205,8 +218,6 @@ public:
}
QNativeIpcKey semaphoreNativeKey() const;
#endif // QT_CONFIG(systemsemaphore)
-
- QString legacyKey; // deprecated
};
QT_END_NAMESPACE