📄 mutex.cpp
字号:
/* AscentEmu By SOI */
#include "../Common.h"
#include "Mutex.h"
#ifdef WIN32
/* Windows Critical Section Implementation */
Mutex::Mutex() { InitializeCriticalSection(&cs); }
Mutex::~Mutex() { DeleteCriticalSection(&cs); }
#else
/* this is done slightly differently on bsd-variants */
#if defined(__FreeBSD__) || defined(__APPLE_CC__) || defined(__OpenBSD__)
#define recursive_mutex_flag PTHREAD_MUTEX_RECURSIVE
#else
#define recursive_mutex_flag PTHREAD_MUTEX_RECURSIVE_NP
#endif
/* Linux mutex implementation */
bool Mutex::attr_initalized = false;
pthread_mutexattr_t Mutex::attr;
Mutex::Mutex()
{
if(!attr_initalized)
{
pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr, recursive_mutex_flag);
attr_initalized = true;
}
pthread_mutex_init(&mutex, &attr);
}
Mutex::~Mutex() { pthread_mutex_destroy(&mutex); }
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -