summaryrefslogtreecommitdiff
path: root/cpp/test/IceUtil/thread/MutexTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/test/IceUtil/thread/MutexTest.cpp')
-rw-r--r--cpp/test/IceUtil/thread/MutexTest.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/cpp/test/IceUtil/thread/MutexTest.cpp b/cpp/test/IceUtil/thread/MutexTest.cpp
index c8bdfec1d88..bc7e6acf60a 100644
--- a/cpp/test/IceUtil/thread/MutexTest.cpp
+++ b/cpp/test/IceUtil/thread/MutexTest.cpp
@@ -119,7 +119,21 @@ MutexTest::run()
}
Mutex::TryLock lock2(mutex);
+#ifdef __FreeBSD__
+ try
+ {
+ test(lock.tryAcquire() == false);
+ }
+ catch(const IceUtil::ThreadSyscallException& ex)
+ {
+ //
+ // pthread_mutex_trylock returns EDEADLK in FreeBSD's new threading implementation.
+ //
+ test(ex.error() == EDEADLK);
+ }
+#else
test(lock.tryAcquire() == false);
+#endif
lock2.release();
test(lock.tryAcquire() == true);
test(lock.acquired());