summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--test/ruby/test_thread.rb16
2 files changed, 21 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 07aeb1171d..925504cb60 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun May 11 19:04:06 2008 Yusuke Endoh <mame@tsg.ne.jp>
+
+ * test/ruby/test_thread.rb: kill and join temporal threads that are
+ created in each test.
+
Sun May 11 17:58:45 2008 Tanaka Akira <akr@fsij.org>
* test/ruby/test_process.rb (TestProcess#with_stdin): defined.
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