mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 820875 - Reimplement DMD's MutexBase using critical sections; r=bbondy
This commit is contained in:
parent
3acc2c751c
commit
590bab4d4b
@ -271,36 +271,29 @@ static const size_t kNoSize = size_t(-1);
|
||||
|
||||
class MutexBase
|
||||
{
|
||||
HANDLE mMutex;
|
||||
CRITICAL_SECTION mCS;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(MutexBase);
|
||||
|
||||
public:
|
||||
MutexBase()
|
||||
: mMutex(CreateMutexW(nullptr, false, nullptr))
|
||||
{
|
||||
MOZ_ASSERT(mMutex);
|
||||
InitializeCriticalSection(&mCS);
|
||||
}
|
||||
|
||||
~MutexBase()
|
||||
{
|
||||
if (mMutex) {
|
||||
CloseHandle(mMutex);
|
||||
}
|
||||
DeleteCriticalSection(&mCS);
|
||||
}
|
||||
|
||||
void Lock()
|
||||
{
|
||||
if (mMutex) {
|
||||
WaitForSingleObject(mMutex, INFINITE);
|
||||
}
|
||||
EnterCriticalSection(&mCS);
|
||||
}
|
||||
|
||||
void Unlock()
|
||||
{
|
||||
if (mMutex) {
|
||||
ReleaseMutex(mMutex);
|
||||
}
|
||||
LeaveCriticalSection(&mCS);
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user