使用宏区分win和linux下的锁的实现。
头文件
RWLock.h
//////////////////////////////////////////////////////////////////////////
//读写锁
//////////////////////////////////////////////////////////////////////////
#ifndef _RWMETUX_H_
#define _RWMETUX_H_
//////////////////////////////////////////////////////////////////////////
#ifndef WIN32
#include <pthread.h>
#endif
//////////////////////////////////////////////////////////////////////////
// 多证书链读写锁类
#ifdef WIN32
typedef struct _RWLock
{
HANDLE hMutex;
HANDLE hDataLock;
int nReaderCount;
} RWLock;
#endif
class CRWLock
{
public:
CRWLock();
~CRWLock();
BOOL AcquireReadLock(void); //请求读操作锁,请求不成功则阻塞
BOOL ReleaseReadLock(void); //释放读操作锁
BOOL AcquireWriteLock(void); //请求写操作锁,请求不成功则阻塞
BOOL ReleaseWriteLock(void); //释放写操作锁
private:
BOOL MyWaitForSingleObject(HANDLE hObject);
BOOL InitRWLock();
BOOL DestroyRWLock();
#ifdef WIN32
RWLock