summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_thread.rb16
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