diff options
Diffstat (limited to 'src/corelib/ipc/qsharedmemory_p.h')
-rw-r--r-- | src/corelib/ipc/qsharedmemory_p.h | 19 |
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 |