DragonNest/Server/NetLauncher/MultiSync.h
Cussrro 47f7895977 Revert "修复编码问题"
This reverts commit 9e69c01767.
2024-12-21 10:04:04 +08:00

57 lines
849 B
C++

#pragma once
#include <windows.h>
#include <stdio.h>
#include <crtdbg.h>
#include <tchar.h>
class CSync
{
public :
CSync();
~CSync();
void Enter();
void Leave();
void Reset(); // Àç ¼³Á¤
private :
CRITICAL_SECTION m_CS;
bool m_bBusy;
} ;
class CMultiSync
{
public :
CMultiSync(int count = 3);
~CMultiSync();
void EnterExclusive();
void LeaveExclusive();
void Reset();
void EnterExclusive(const TCHAR *file, int line);
int Enter(const TCHAR *file, int line);
int Enter();
void Leave(int handle);
private :
void Enter(int idx);
CRITICAL_SECTION * m_pCS;
int m_MaxCount;
unsigned int m_iCnt;
TCHAR (*m_DebugInfo)[64];
bool * m_bBusy;
TCHAR _DebugInfo[8][64];
bool _Busy[8];
} ;
#define _MCS_ENTER(CS) (CS).Enter(_T(__FILE__), __LINE__)
#define _MCS_ENTEREXCLUSIVE(CS) (CS).EnterExclusive(_T(__FILE__), __LINE__)