2025-04-27 07:49:33 -04:00

31 lines
560 B
C++

// ReadWriteLock.h: interface for the CReadWriteLock class.
//
//////////////////////////////////////////////////////////////////////
#pragma once
class CReadWriteLock
{
public:
CReadWriteLock();
~CReadWriteLock();
BOOL Init();
void EnterWriteLock();
void EnterReadLock();
void LeaveLock();
private:
int m_nWriterWaitingCount;
int m_nReaderWaitingCount;
int m_nActiveCount;
HANDLE m_hWriteSem;
HANDLE m_hReadSem;
BOOL m_fCritSecInited;
DNCRITICAL_SECTION m_csWrite;
DEBUG_ONLY(DWORD m_dwWriteThread);
};