1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

rubygems/util.rb: fix Gem::Util.popen

* lib/rubygems/util.rb (Gem::Util.popen): should close open pipe to
  reap the child process, in 1.9 or later.  fix deadlock on waiting
  the child process whose output is bigger than pipe buffer, in 1.8.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2013-11-19 14:00:31 +00:00
parent 4528d7e0cf
commit 11d2b16cfb

View file

@ -41,7 +41,7 @@ module Gem::Util
def self.popen *command
begin
r, = IO.popen command
r, = IO.popen command, &:read
rescue TypeError # ruby 1.8 only supports string command
r, w = IO.pipe
@ -54,12 +54,13 @@ module Gem::Util
w.close
Process.wait pid
r
begin
return r.read
ensure
Process.wait pid
end
end
r.read
end
end