From 6f6dd30dbf3a1e77c643bb7e1391ed28e59f4dc7 Mon Sep 17 00:00:00 2001 From: akr Date: Sat, 31 May 2014 15:31:46 +0000 Subject: [PATCH] Join threads. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/monitor/test_monitor.rb | 12 ++++++++---- test/ruby/test_file.rb | 3 ++- test/ruby/test_process.rb | 3 ++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/test/monitor/test_monitor.rb b/test/monitor/test_monitor.rb index 8bd15ff55a..313ef23a95 100644 --- a/test/monitor/test_monitor.rb +++ b/test/monitor/test_monitor.rb @@ -86,7 +86,7 @@ class TestMonitor < Test::Unit::TestCase def test_try_enter queue1 = Queue.new queue2 = Queue.new - Thread.start { + th = Thread.start { queue1.deq @monitor.enter queue2.enq(nil) @@ -102,6 +102,7 @@ class TestMonitor < Test::Unit::TestCase queue1.enq(nil) queue2.deq assert_equal(true, @monitor.try_enter) + th.join end def test_cond @@ -109,7 +110,7 @@ class TestMonitor < Test::Unit::TestCase a = "foo" queue1 = Queue.new - Thread.start do + th = Thread.start do queue1.deq @monitor.synchronize do a = "bar" @@ -123,13 +124,14 @@ class TestMonitor < Test::Unit::TestCase assert_equal(true, result1) assert_equal("bar", a) end + th.join end def test_timedwait cond = @monitor.new_cond b = "foo" queue2 = Queue.new - Thread.start do + th = Thread.start do queue2.deq @monitor.synchronize do b = "bar" @@ -143,10 +145,11 @@ class TestMonitor < Test::Unit::TestCase assert_equal(true, result2) assert_equal("bar", b) end + th.join c = "foo" queue3 = Queue.new - Thread.start do + th = Thread.start do queue3.deq @monitor.synchronize do c = "bar" @@ -163,6 +166,7 @@ class TestMonitor < Test::Unit::TestCase assert_equal(true, result4) assert_equal("bar", c) end + th.join # d = "foo" # cumber_thread = Thread.start { diff --git a/test/ruby/test_file.rb b/test/ruby/test_file.rb index 9462ae597b..974752c853 100644 --- a/test/ruby/test_file.rb +++ b/test/ruby/test_file.rb @@ -124,7 +124,7 @@ class TestFile < Test::Unit::TestCase q1 = Queue.new q2 = Queue.new - Thread.new do + th = Thread.new do data = '' 64.times do |i| data << i.to_s @@ -142,6 +142,7 @@ class TestFile < Test::Unit::TestCase assert_equal size, f.size q2.push true end + th.join end end diff --git a/test/ruby/test_process.rb b/test/ruby/test_process.rb index 75657ab894..ccd5676171 100644 --- a/test/ruby/test_process.rb +++ b/test/ruby/test_process.rb @@ -1237,8 +1237,9 @@ class TestProcess < Test::Unit::TestCase IO.pipe do |r, w| pid = spawn(RUBY, "foo", out: w) w.close - Thread.new { r.read(1); Process.kill(:SIGQUIT, pid) } + th = Thread.new { r.read(1); Process.kill(:SIGQUIT, pid) } Process.wait(pid) + th.join end t = Time.now s = $?