⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ce_rwmutex.h

📁 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 + -