Files
2026-06-12 23:18:12 +08:00

42 lines
719 B
C++

#ifndef SimpleMutexH
#define SimpleMutexH
#include <windows.h>
#ifndef INFINITE
#define INFINITE 0x7FFFFFFF
#endif
//////////////////////////////
//
// 信号量
//
class CSema
{
protected:
bool m_bCreate;// 用来控制是否生成信号量,缺省情况下生成。
HANDLE m_hSema;
public:
CSema(const char *sName, unsigned int nInit, bool bCreate=true);
~CSema();
int ActP(DWORD dwTimeOut = INFINITE); // 等待状态
void ActV(); // 非等待状态
};
///////////////////////////////
//
// 互斥量
//
class CMutexLock
{
protected:
CSema * m_psmMut;
public:
CMutexLock(bool bCreate=true);
CMutexLock(CSema * pSema, DWORD dwTimeOut = INFINITE);
~CMutexLock();
};
#endif //SimpleMutexH