| author | David Anderson <dvander@alliedmods.net> |
| Wed Feb 25 19:22:36 2009 -0500 (2009-02-25) | |
| changeset 2603 | fa286305bd3f |
| parent 1722 | 2c16f160f5dd |
| permissions | -rw-r--r-- |
| dvander@1722 | 1 |
#ifndef _INCLUDE_INSTALLER_CRIT_SECT_H_ |
| dvander@1722 | 2 |
#define _INCLUDE_INSTALLER_CRIT_SECT_H_ |
| dvander@1722 | 3 |
|
| dvander@1722 | 4 |
#include "platform_headers.h" |
| dvander@1722 | 5 |
|
| dvander@1722 | 6 |
class CCriticalSection |
| dvander@1722 | 7 |
{ |
| dvander@1722 | 8 |
public: |
| dvander@1722 | 9 |
CCriticalSection() |
| dvander@1722 | 10 |
{ |
| dvander@1722 | 11 |
InitializeCriticalSection(&m_crit); |
| dvander@1722 | 12 |
} |
| dvander@1722 | 13 |
~CCriticalSection() |
| dvander@1722 | 14 |
{ |
| dvander@1722 | 15 |
DeleteCriticalSection(&m_crit); |
| dvander@1722 | 16 |
} |
| dvander@1722 | 17 |
void Enter() |
| dvander@1722 | 18 |
{ |
| dvander@1722 | 19 |
EnterCriticalSection(&m_crit); |
| dvander@1722 | 20 |
} |
| dvander@1722 | 21 |
bool TryEnter() |
| dvander@1722 | 22 |
{ |
| dvander@1722 | 23 |
if (TryEnterCriticalSection(&m_crit)) |
| dvander@1722 | 24 |
{ |
| dvander@1722 | 25 |
return true; |
| dvander@1722 | 26 |
} |
| dvander@1722 | 27 |
return false; |
| dvander@1722 | 28 |
} |
| dvander@1722 | 29 |
void Leave() |
| dvander@1722 | 30 |
{ |
| dvander@1722 | 31 |
LeaveCriticalSection(&m_crit); |
| dvander@1722 | 32 |
} |
| dvander@1722 | 33 |
private: |
| dvander@1722 | 34 |
CRITICAL_SECTION m_crit; |
| dvander@1722 | 35 |
}; |
| dvander@1722 | 36 |
|
| dvander@1722 | 37 |
#endif //_INCLUDE_INSTALLER_CRIT_SECT_H_ |