diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_thread.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/ruby/test_thread.rb b/test/ruby/test_thread.rb index bdb9ec24f5..9abe39b104 100644 --- a/test/ruby/test_thread.rb +++ b/test/ruby/test_thread.rb @@ -8,13 +8,29 @@ class TestThread < Test::Unit::TestCase end class Thread < ::Thread + Threads = [] def self.new(*) th = super th.abort_on_exception = true + Threads << th th end end + def setup + Thread::Threads.clear + end + + def teardown + Thread::Threads.each do |t| + t.kill if t.alive? + begin + t.join + rescue Exception + end + end + end + def test_mutex_synchronize m = Mutex.new r = 0 |