mirror of https://github.com/x64dbg/TitanEngine
fixed CriticalSectionLocker (thanks to Nukem)
This commit is contained in:
parent
29f8973700
commit
f04f96e83d
|
|
@ -30,20 +30,25 @@ CriticalSectionLocker::CriticalSectionLocker(CriticalSectionLock lock)
|
||||||
{
|
{
|
||||||
CriticalSectionInitializeLocks(); //initialize critical sections
|
CriticalSectionInitializeLocks(); //initialize critical sections
|
||||||
gLock = lock;
|
gLock = lock;
|
||||||
|
|
||||||
EnterCriticalSection(&locks[gLock]);
|
EnterCriticalSection(&locks[gLock]);
|
||||||
|
Locked = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
CriticalSectionLocker::~CriticalSectionLocker()
|
CriticalSectionLocker::~CriticalSectionLocker()
|
||||||
{
|
{
|
||||||
|
if(Locked)
|
||||||
LeaveCriticalSection(&locks[gLock]);
|
LeaveCriticalSection(&locks[gLock]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CriticalSectionLocker::unlock()
|
void CriticalSectionLocker::unlock()
|
||||||
{
|
{
|
||||||
|
Locked = false;
|
||||||
LeaveCriticalSection(&locks[gLock]);
|
LeaveCriticalSection(&locks[gLock]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CriticalSectionLocker::relock()
|
void CriticalSectionLocker::relock()
|
||||||
{
|
{
|
||||||
EnterCriticalSection(&locks[gLock]);
|
EnterCriticalSection(&locks[gLock]);
|
||||||
|
Locked = true;
|
||||||
}
|
}
|
||||||
|
|
@ -25,6 +25,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CriticalSectionLock gLock;
|
CriticalSectionLock gLock;
|
||||||
|
bool Locked;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //_GLOBAL_ENGINE_THREADING_H
|
#endif //_GLOBAL_ENGINE_THREADING_H
|
||||||
Loading…
Reference in New Issue