📄 osmutex.cpp
字号:
#include "OSMutex.h"
#include <string.h>
OSMutex::OSMutex()
{
#ifdef __Win32__
::InitializeCriticalSection(&mMutex);
#endif
#ifdef __REDHATLINUX__
// pthread_mutexattr_t attr;
// pthread_mutexattr_init(&attr);
// pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_TIMED_NP);
// pthread_mutex_init(&mMutex,&attr); //PTHREAD_MUTEX_INITIALIZER);
pthread_mutex_init(&mMutex,NULL); //PTHREAD_MUTEX_INITIALIZER);
// pthread_mutexattr_destroy(&attr);
#endif
}
OSMutex::~OSMutex()
{
#ifdef __Win32__
::DeleteCriticalSection(&mMutex);
#endif
#ifdef __REDHATLINUX__
pthread_mutex_destroy(&mMutex);
#endif
}
void OSMutex::Lock()
{
#ifdef __Win32__
::EnterCriticalSection(&mMutex);
#endif
#ifdef __REDHATLINUX__
pthread_mutex_lock(&mMutex);
#endif
}
void OSMutex::Unlock()
{
#ifdef __Win32__
::LeaveCriticalSection(&mMutex);
#endif
#ifdef __REDHATLINUX__
pthread_mutex_unlock(&mMutex);
#endif
}
UInt32 OSMutex::TryLock()
{
#ifdef __Win32__
int theErr = ::TryEnterCriticalSection( &mMutex );
if (!theErr)
return OSMUX_BUSY;
#endif
#ifdef __REDHATLINUX__
int theErr = pthread_mutex_trylock(&mMutex);
if(theErr != 0)
return OSMUX_BUSY;
#endif
return OSMUX_ENTER;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -