56 #define _WIN32_WINNT 0x400 59 #pragma comment(lib, "winmm.lib") 62 #if defined(__linux__) 70 #if defined(__APPLE__) || defined(__linux__) 74 #if defined(__APPLE__) 75 #define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE 82 #define VHACD_VERIFY(x) (x) 84 #define VHACD_VERIFY(x) assert((x)) 92 #if defined(WIN32) || defined(_XBOX) 93 InitializeCriticalSection(&m_mutex);
94 #elif defined(__APPLE__) || defined(__linux__) 95 pthread_mutexattr_t mutexAttr;
97 VHACD_VERIFY(pthread_mutexattr_settype(&mutexAttr, PTHREAD_MUTEX_RECURSIVE_NP) == 0);
98 VHACD_VERIFY(pthread_mutex_init(&m_mutex, &mutexAttr) == 0);
99 VHACD_VERIFY(pthread_mutexattr_destroy(&mutexAttr) == 0);
104 #if defined(WIN32) || defined(_XBOX) 105 DeleteCriticalSection(&m_mutex);
106 #elif defined(__APPLE__) || defined(__linux__) 112 #if defined(WIN32) || defined(_XBOX) 113 EnterCriticalSection(&m_mutex);
114 #elif defined(__APPLE__) || defined(__linux__) 120 #if defined(WIN32) || defined(_XBOX) 123 bRet = TryEnterCriticalSection(&m_mutex) ? true :
false;
125 #elif defined(__APPLE__) || defined(__linux__) 126 int32_t result = pthread_mutex_trylock(&m_mutex);
127 return (result == 0);
133 #if defined(WIN32) || defined(_XBOX) 134 LeaveCriticalSection(&m_mutex);
135 #elif defined(__APPLE__) || defined(__linux__) 141 #if defined(WIN32) || defined(_XBOX) 142 CRITICAL_SECTION m_mutex;
143 #elif defined(__APPLE__) || defined(__linux__) 144 pthread_mutex_t m_mutex;
148 #endif // VHACD_MUTEX_H Definition: vhacdMutex.h:88
bool TryLock(void)
Definition: vhacdMutex.h:118
~Mutex(void)
Definition: vhacdMutex.h:102
Mutex(void)
Definition: vhacdMutex.h:90
void Lock(void)
Definition: vhacdMutex.h:110
void Unlock(void)
Definition: vhacdMutex.h:131
Definition: vhacdCircularList.h:19
#define VHACD_VERIFY(x)
Definition: vhacdMutex.h:84