1
0
Fork 0
x64dbg/x64_dbg_dbg/threading.h

58 lines
983 B
C
Raw Normal View History

#ifndef _THREADING_H
#define _THREADING_H
2013-11-15 04:55:18 +08:00
#include "_global.h"
//enums
2013-11-15 04:55:18 +08:00
enum WAIT_ID
{
WAITID_RUN,
WAITID_STOP,
2014-09-07 03:18:50 +08:00
WAITID_LAST
2013-11-15 04:55:18 +08:00
};
//functions
void waitclear();
void wait(WAIT_ID id);
void lock(WAIT_ID id);
void unlock(WAIT_ID id);
bool waitislocked(WAIT_ID id);
enum CriticalSectionLock
{
LockMemoryPages,
LockVariables,
LockModules,
LockComments,
LockLabels,
LockBookmarks,
LockFunctions,
LockLoops,
LockBreakpoints,
LockPatches,
LockThreads,
LockDprintf,
LockSym,
LockLast
};
class CriticalSectionLocker
{
public:
static void Deinitialize();
CriticalSectionLocker(CriticalSectionLock lock);
~CriticalSectionLocker();
void unlock();
void relock();
2015-03-11 09:24:47 +08:00
private:
static void Initialize();
static bool bInitDone;
static CRITICAL_SECTION locks[LockLast];
CriticalSectionLock gLock;
bool Locked;
};
#endif // _THREADING_H