test/net/imap: fix race condition in test_exception_during_idle

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58700 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
shugo 2017-05-13 02:05:40 +00:00
Родитель 665333e314
Коммит b7ff46b7a4
1 изменённых файлов: 10 добавлений и 4 удалений

Просмотреть файл

@ -240,7 +240,10 @@ class IMAPTest < Test::Unit::TestCase
end
end
th.raise(Interrupt)
exception_raised = true
m.synchronize do
exception_raised = true
c.signal
end
end
imap.idle do |res|
m.synchronize do
@ -417,7 +420,7 @@ class IMAPTest < Test::Unit::TestCase
begin
m = Monitor.new
in_idle = false
exception_raised = false
closed = false
c = m.new_cond
threads << Thread.start do
m.synchronize do
@ -426,14 +429,17 @@ class IMAPTest < Test::Unit::TestCase
end
end
sock.close
exception_raised = true
m.synchronize do
closed = true
c.signal
end
end
assert_raise(Net::IMAP::Error) do
imap.idle do |res|
m.synchronize do
in_idle = true
c.signal
until exception_raised
until closed
c.wait(0.1)
end
end