CriticalSection()
: mCriticalSection(NULL)
{
}
~CriticalSection()
{
if (mInit)
{
Destructor();
}
}
bool Constructor()
{
mCriticalSection = new(std::nothrow) CRITICAL_SECTION;
if (!mCriticalSection)
{
Destructor();
return false;
}
if (!InitializeCriticalSectionAndSpinCount(mCriticalSection, 2000))
{
Destructor();
return false;
}
mInit = true;
return true;
}
void Destructor()
{
if (mCriticalSection)
{
DeleteCriticalSection(mCriticalSection);
delete mCriticalSection;
mCriticalSection = NULL;
}
mInit = false;
}
bool Lock()
{
if (!mInit) return false;
EnterCriticalSection(mCriticalSection);
return true;
}
bool Unlock()
{
if (!mInit) return false;
LeaveCriticalSection(mCriticalSection);
return true;
}
메소드가 적어서 이모양이지
메소드 많아지면 상태체크 코드만 절반될덧...
너 섹스 해봤니