ce_rwmutex.h

来自「RWMutex 跨平台的读写锁封装类源码」· C头文件 代码 · 共 76 行

H
76
字号
// =================================================================================
//  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 + =
减小字号Ctrl + -
显示快捷键?