⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ltlock.cpp

📁 一个SGIP网关的程序源码.vc代码
💻 CPP
字号:
// 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -