diff options
Diffstat (limited to 'cpp/test/IceUtil/thread/RecMutexTest.cpp')
-rw-r--r-- | cpp/test/IceUtil/thread/RecMutexTest.cpp | 21 |
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(); + } |