#include "stdafx.h" #include "multisync.h" CSync::CSync() { InitializeCriticalSection(&m_CS); m_bBusy = false; } CSync::~CSync() { DeleteCriticalSection(&m_CS); } void CSync::Enter() { EnterCriticalSection(&m_CS); _ASSERT(m_bBusy == false); m_bBusy = true; } void CSync::Leave() { _ASSERT(m_bBusy == true); m_bBusy = false; LeaveCriticalSection(&m_CS); } void CSync::Reset() { DeleteCriticalSection(&m_CS); InitializeCriticalSection(&m_CS); m_bBusy = false; } CMultiSync::CMultiSync(int count) { m_MaxCount = count+1; m_pCS = NULL; memset(_DebugInfo, 0, sizeof(_DebugInfo)); memset(_Busy, 0, sizeof(_Busy)); if (count <= sizeof(_DebugInfo)/sizeof(*_DebugInfo)) { m_DebugInfo = _DebugInfo; m_bBusy = _Busy; } else { m_DebugInfo = new TCHAR [m_MaxCount][64]; m_bBusy = new bool [m_MaxCount]; } for(int i=0; i sizeof(_DebugInfo)/sizeof(*_DebugInfo)) { delete [] m_DebugInfo; delete [] m_bBusy; } } void CMultiSync::Reset() { if (m_pCS) { for(int i=0; i