mirror of
https://github.com/ddnet/ddnet.git
synced 2024-10-20 15:58:18 +00:00
25 lines
340 B
C
25 lines
340 B
C
|
#ifndef BASE_LOCK_SCOPE_H
|
||
|
#define BASE_LOCK_SCOPE_H
|
||
|
|
||
|
#include "system.h"
|
||
|
|
||
|
class SCOPED_CAPABILITY CLockScope
|
||
|
{
|
||
|
public:
|
||
|
CLockScope(LOCK Lock) ACQUIRE(Lock, m_Lock) REQUIRES(!Lock, !m_Lock) :
|
||
|
m_Lock(Lock)
|
||
|
{
|
||
|
lock_wait(m_Lock);
|
||
|
}
|
||
|
|
||
|
~CLockScope() RELEASE() REQUIRES(m_Lock)
|
||
|
{
|
||
|
lock_unlock(m_Lock);
|
||
|
}
|
||
|
|
||
|
private:
|
||
|
LOCK m_Lock;
|
||
|
};
|
||
|
|
||
|
#endif
|