-#ifndef WIN32
- Mutex() { pthread_mutex_init(&mutex, 0); }
- int lock() { return pthread_mutex_lock(&mutex); }
- int trylock() { return pthread_mutex_trylock(&mutex); }
- int unlock() { return pthread_mutex_unlock(&mutex); }
- ~Mutex() { pthread_mutex_destroy(&mutex); }
-#else
- Mutex() { mutex = CreateMutex(0, false, 0); }
- int lock() { return WaitForSingleObject(mutex, INFINITE)==WAIT_OBJECT_0; }
- int trylock() { return WaitForSingleObject(mutex, 0)==WAIT_OBJECT_0; }
- int unlock() { return !ReleaseMutex(mutex); }
- ~Mutex() { CloseHandle(mutex); }
-#endif
+ Mutex();
+ ~Mutex();
+
+ /** Locks the mutex. If the mutex is already locked, waits until it becomes
+ available. */
+ void lock();
+
+ /** Attempts to lock the mutex. Returns true if the lock was acquired,
+ otherwise returns false. */
+ bool trylock();
+
+ /** Unlocks the mutex. */
+ void unlock();