aboutsummaryrefslogtreecommitdiff
path: root/src/zencore/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/zencore/include')
-rw-r--r--src/zencore/include/zencore/thread.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/zencore/include/zencore/thread.h b/src/zencore/include/zencore/thread.h
index bae630db9..9362802a1 100644
--- a/src/zencore/include/zencore/thread.h
+++ b/src/zencore/include/zencore/thread.h
@@ -35,6 +35,16 @@ public:
struct SharedLockScope
{
+ SharedLockScope(const SharedLockScope& Rhs) = delete;
+ SharedLockScope(SharedLockScope&& Rhs) : m_Lock(Rhs.m_Lock) { Rhs.m_Lock = nullptr; }
+ SharedLockScope& operator=(SharedLockScope&& Rhs)
+ {
+ ReleaseNow();
+ m_Lock = Rhs.m_Lock;
+ Rhs.m_Lock = nullptr;
+ return *this;
+ }
+ SharedLockScope& operator=(const SharedLockScope& Rhs) = delete;
SharedLockScope(RwLock& Lock) : m_Lock(&Lock) { Lock.AcquireShared(); }
~SharedLockScope() { ReleaseNow(); }