From 0c0496ebd2a61f1d9b115209b0aa314a9dee60a8 Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 9 Dec 2012 14:34:33 +0000 Subject: envutil.rb: kill child * test/ruby/envutil.rb (EnvUtil#invoke_ruby): kill the child process certainly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/envutil.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'test/ruby/envutil.rb') diff --git a/test/ruby/envutil.rb b/test/ruby/envutil.rb index 9e527e90b1..657e991e3f 100644 --- a/test/ruby/envutil.rb +++ b/test/ruby/envutil.rb @@ -44,6 +44,7 @@ module EnvUtil err_p.set_encoding(enc) if err_p end timeout = opt.delete(:timeout) || 10 + reprieve = opt.delete(:reprieve) || 1 c = "C" child_env = {} LANG_ENVS.each {|lc| child_env[lc] = c} @@ -70,7 +71,9 @@ module EnvUtil begin Process.kill signal, pid rescue Errno::ESRCH - end + break + else + end until signal == :KILL or (sleep reprieve; signal = :KILL; false) raise Timeout::Error end out_p.close if capture_stdout -- cgit v1.2.3