tools/installer/CCriticalSection.h
author David Anderson <dvander@alliedmods.net>
Wed Feb 25 20:07:12 2009 -0500 (2009-02-25)
changeset 2607 f3b8bbe17f85
parent 1722 2c16f160f5dd
permissions -rw-r--r--
Backed out changeset fa286305bd3f
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_