mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
lib/open3.rb: make sure that pipes are closed
Attempting to invoke a non-existent command led to the leak of fds. http://rubyci.s3.amazonaws.com/graviton2/ruby-master/log/20200526T140004Z.log.html.gz ``` [ 9101/20195] TestGemExtCmakeBuilder#test_self_build = 0.01 sLeaked file descriptor: TestGemExtCmakeBuilder#test_self_build: 7 : #<IO:fd 7> Leaked file descriptor: TestGemExtCmakeBuilder#test_self_build: 10 : #<IO:fd 10> Leaked file descriptor: TestGemExtCmakeBuilder#test_self_build: 11 : #<IO:fd 11> Leaked file descriptor: TestGemExtCmakeBuilder#test_self_build: 12 : #<IO:fd 12> ```
This commit is contained in:
parent
eb20d2f449
commit
5429deb075
1 changed files with 5 additions and 0 deletions
|
@ -206,6 +206,11 @@ module Open3
|
|||
opts[[:out, :err]] = out_w
|
||||
|
||||
popen_run(cmd, opts, [in_r, out_w], [in_w, out_r], &block)
|
||||
ensure
|
||||
in_r.close
|
||||
in_w.close
|
||||
out_r.close
|
||||
out_w.close
|
||||
end
|
||||
module_function :popen2e
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue