From ab5d5369a06b0014e1ffdf24f398a1a74b2f6c84 Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 27 May 2004 07:43:38 +0000 Subject: * lib/pstore.rb (transaction): allow overriding dump and load. [ruby-dev:23567] * lib/yaml/store.rb: follow lib/pstore.rb's change. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/thread.rb | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'lib/thread.rb') diff --git a/lib/thread.rb b/lib/thread.rb index 3baa95152..8b27356c4 100644 --- a/lib/thread.rb +++ b/lib/thread.rb @@ -189,11 +189,14 @@ class ConditionVariable # Releases the lock held in +mutex+ and waits; reacquires the lock on wakeup. # def wait(mutex) - mutex.exclusive_unlock do - @waiters.push(Thread.current) - Thread.stop + begin + mutex.exclusive_unlock do + @waiters.push(Thread.current) + Thread.stop + end + ensure + mutex.lock end - mutex.lock end # -- cgit