mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-26 20:01:17 +00:00
Give ScopedSpinLock move semantics
Change-Id: Ica36b07ee5389953afccf78d9f4db882c73ead3b
This commit is contained in:
committed by
Baldur Karlsson
parent
8e2d2f8884
commit
c51dc2a802
@@ -84,10 +84,30 @@ private:
|
||||
class ScopedSpinLock
|
||||
{
|
||||
public:
|
||||
ScopedSpinLock() = default;
|
||||
ScopedSpinLock(SpinLock &spin) : m_Spin(&spin) { m_Spin->Lock(); }
|
||||
~ScopedSpinLock() { m_Spin->Unlock(); }
|
||||
ScopedSpinLock(const ScopedSpinLock &) = delete;
|
||||
ScopedSpinLock &operator=(const ScopedSpinLock &) = delete;
|
||||
ScopedSpinLock &operator=(ScopedSpinLock &&other)
|
||||
{
|
||||
if(m_Spin != NULL)
|
||||
m_Spin->Unlock();
|
||||
m_Spin = other.m_Spin;
|
||||
other.m_Spin = NULL;
|
||||
return *this;
|
||||
}
|
||||
ScopedSpinLock(ScopedSpinLock &&other) : m_Spin(other.m_Spin) { other.m_Spin = NULL; }
|
||||
~ScopedSpinLock()
|
||||
{
|
||||
if(m_Spin != NULL)
|
||||
{
|
||||
m_Spin->Unlock();
|
||||
m_Spin = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
SpinLock *m_Spin;
|
||||
SpinLock *m_Spin = NULL;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user