summaryrefslogtreecommitdiff
path: root/cpp/include/IceUtil/StaticMutex.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/IceUtil/StaticMutex.h')
-rw-r--r--cpp/include/IceUtil/StaticMutex.h9
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);
}