diff options
Diffstat (limited to 'cpp/include/IceUtil/StaticMutex.h')
-rw-r--r-- | cpp/include/IceUtil/StaticMutex.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/cpp/include/IceUtil/StaticMutex.h b/cpp/include/IceUtil/StaticMutex.h index 64332a0bd53..f499f6f1674 100644 --- a/cpp/include/IceUtil/StaticMutex.h +++ b/cpp/include/IceUtil/StaticMutex.h @@ -295,7 +295,14 @@ StaticMutex::tryLock() const int rc = pthread_mutex_trylock(&_mutex); if(rc != 0 && rc != EBUSY) { - throw ThreadSyscallException(__FILE__, __LINE__, rc); + if(rc == EDEADLOCK) + { + throw ThreadLockedException(__FILE__, __LINE__); + } + else + { + throw ThreadSyscallException(__FILE__, __LINE__, rc); + } } return (rc == 0); } |