📄 ce_rwmutex.h
字号:
// =================================================================================
// File : RWMutex.h
// Author : linzg
// Created : 2007-11-12
// CopyRight (C) linzg
// =================================================================================
#ifndef __RWMUTEX_H__
#define __RWMUTEX_H__
// =================================================================================
// Include Header Files
#include "Mutex.h"
// =================================================================================
// Micro Definition
// =================================================================================
// Class Definition
class COMMONEXSDK_EXPORT RWMutex
{
public :
// = Default constructor.
RWMutex();
// = Default destructor.
virtual ~RWMutex();
// = Unlock.
void Unlock();
// = Lock read.
void LockRead();
// = Lock write.
void LockWrite();
private :
#if defined(_WIN32)
class COMMONEXSDK_EXPORT RWCondition
{
public :
int m_nWaiters;
size_t m_boradcast;
HANDLE m_hCond;
HANDLE m_hDone;
Mutex m_lock;
};
// = Read condition.
RWCondition m_condRead;
// = Write condition.
RWCondition m_condWrite;
// = Reference count.
int m_nRefCount;
// = Serialize access to internal state.
Mutex m_lock;
// = Number of waiting readers.
int m_nWaitingReaders;
// = Number of waiting writers.
int m_nWaitingWriters;
#elif defined(_LINUX)
pthread_rwlock_t m_rwLock;
#endif
};
// =================================================================================
// 1.00 2007-11-12 Created By LinZaoGang
// File End
#endif // __RWMUTEX_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -