diff options
-rw-r--r-- | src/mutex.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/mutex.cc b/src/mutex.cc index 8a9439d..a932789 100644 --- a/src/mutex.cc +++ b/src/mutex.cc @@ -70,14 +70,19 @@ Mutex::~Mutex() } } +//! \return true if the function succeeds in locking the mutex for the thread. +//! false otherwise. bool Mutex::try_lock() { #ifdef WIN32 DEBUG(mutex, "%s\n", __PRETTY_FUNCTION__); - DEBUG(mutex, "WAIT_OBJECT_0: %d, WaitForSingleObject: %d\n", - WAIT_OBJECT_0, WaitForSingleObject(prv->mutex, 0)); - return WaitForSingleObject(prv->mutex, 0) == WAIT_OBJECT_0; + DWORD result = WaitForSingleObject(prv->mutex, 0); + + DEBUG(mutex, "WAIT_OBJECT_0: %lu, WAIT_TIMEOUT: %lu, result: %d\n", + WAIT_OBJECT_0, WAIT_TIMEOUT, result); + + return result != WAIT_TIMEOUT; #else return pthread_mutex_trylock(&prv->mutex) != EBUSY; #endif |