summaryrefslogtreecommitdiff
path: root/cpp/test/IceUtil/thread/RecMutexTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/test/IceUtil/thread/RecMutexTest.cpp')
-rw-r--r--cpp/test/IceUtil/thread/RecMutexTest.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/cpp/test/IceUtil/thread/RecMutexTest.cpp b/cpp/test/IceUtil/thread/RecMutexTest.cpp
index 5a8a5c4a1c1..da5fab6c03c 100644
--- a/cpp/test/IceUtil/thread/RecMutexTest.cpp
+++ b/cpp/test/IceUtil/thread/RecMutexTest.cpp
@@ -34,17 +34,14 @@ public:
virtual void run()
{
- try
- {
- RecMutex::TryLock lock(_mutex);
- test(false);
- }
- catch(const ThreadLockedException&)
+
+ RecMutex::TryLock tlock(_mutex);
+ test(!tlock.acquired());
+
{
- // Expected
+ Mutex::Lock lock(_trylockMutex);
+ _trylock = true;
}
-
- _trylock = true;
_trylockCond.signal();
RecMutex::Lock lock(_mutex);
@@ -90,9 +87,10 @@ RecMutexTest::run()
// TEST: lock twice
RecMutex::Lock lock2(mutex);
-
+
// TEST: TryLock
RecMutex::TryLock lock3(mutex);
+ test(lock3.acquired());
// TEST: Start thread, try to acquire the mutex.
t = new RecMutexTestThread(mutex);
@@ -100,11 +98,14 @@ RecMutexTest::run()
// TEST: Wait until the trylock has been tested.
t->waitTrylock();
+
}
//
// TEST: Once the recursive mutex has been released, the thread
// should acquire the mutex and then terminate.
//
+
control.join();
+
}