47 lines
788 B
C
47 lines
788 B
C
|
#pragma once
|
||
|
|
||
|
#include "il2cpp-config.h"
|
||
|
|
||
|
#if IL2CPP_USE_BASELIB_FAST_READER_RWL
|
||
|
|
||
|
#include "Baselib.h"
|
||
|
#include "Cpp/Lock.h"
|
||
|
|
||
|
namespace il2cpp
|
||
|
{
|
||
|
namespace os
|
||
|
{
|
||
|
// This FastReaderReaderWriterLockImpl uses the baselib non-recursive lock
|
||
|
// There is no reader writer lock in baselib and this the fastest baselib lock (on some platforms....)
|
||
|
class FastReaderReaderWriterLockImpl
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
void LockExclusive()
|
||
|
{
|
||
|
m_Lock.Acquire();
|
||
|
}
|
||
|
|
||
|
void LockShared()
|
||
|
{
|
||
|
m_Lock.Acquire();
|
||
|
}
|
||
|
|
||
|
void ReleaseExclusive()
|
||
|
{
|
||
|
m_Lock.Release();
|
||
|
}
|
||
|
|
||
|
void ReleaseShared()
|
||
|
{
|
||
|
m_Lock.Release();
|
||
|
}
|
||
|
|
||
|
private:
|
||
|
baselib::Lock m_Lock;
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif
|