From 1c01f22d93ed22a489c98ac56032d0a7108f0ed6 Mon Sep 17 00:00:00 2001 From: akr Date: Sat, 31 May 2014 00:01:32 +0000 Subject: [PATCH] Join threads. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/test_pstore.rb | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/test/test_pstore.rb b/test/test_pstore.rb index ee662669ff..522f2d1fb3 100644 --- a/test/test_pstore.rb +++ b/test/test_pstore.rb @@ -77,28 +77,36 @@ class PStoreTest < Test::Unit::TestCase def test_thread_safe assert_raise(PStore::Error) do flag = false - Thread.new do + th = Thread.new do @pstore.transaction do @pstore[:foo] = "bar" flag = true sleep 1 end end - sleep 0.1 until flag - @pstore.transaction {} + begin + sleep 0.1 until flag + @pstore.transaction {} + ensure + th.join + end end begin pstore = PStore.new(second_file, true) flag = false - Thread.new do + th = Thread.new do pstore.transaction do pstore[:foo] = "bar" flag = true sleep 1 end end - sleep 0.1 until flag - assert_equal("bar", pstore.transaction { pstore[:foo] }) + begin + sleep 0.1 until flag + assert_equal("bar", pstore.transaction { pstore[:foo] }) + ensure + th.join + end end ensure File.unlink(second_file) rescue nil