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:
Yusuke Endoh 2020-05-27 00:20:14 +09:00
Родитель eb20d2f449
Коммит 5429deb075
1 изменённых файлов: 5 добавлений и 0 удалений

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

@ -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