ltlock.cpp
来自「一个SGIP网关的程序源码.vc代码」· C++ 代码 · 共 61 行
CPP
61 行
// LTLock.cpp: implementation of the CLTLock class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "LTLock.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CLTLock::CLTLock()
{
::InitializeCriticalSection(&mLock);
mnLockCount = 0;
}
CLTLock::~CLTLock()
{
ReleaseLock();
}
BOOL CLTLock::Lock()
{
if( mnLockCount < 0 )
return FALSE;
::EnterCriticalSection(&mLock);
mnLockCount++;
return TRUE;
}
BOOL CLTLock::Unlock()
{
if( mnLockCount <= 0 )
return FALSE;
::LeaveCriticalSection(&mLock);
mnLockCount--;
return TRUE;
}
void CLTLock::ReleaseLock()
{
if( mnLockCount < 0 )
return;
while( mnLockCount > 0 )
Sleep(50);
::DeleteCriticalSection(&mLock);
mnLockCount = -1;
}
void CLTLock::ResetLock()
{
ReleaseLock();
::InitializeCriticalSection(&mLock);
mnLockCount = 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?