method
popen_run
ruby latest stable - Class:
Open3
popen_run(cmd, opts, child_io, parent_io)private
No documentation available.
# File lib/open3.rb, line 194
def popen_run(cmd, opts, child_io, parent_io) # :nodoc:
if last = Hash.try_convert(cmd.last)
opts = opts.merge(last)
cmd.pop
end
pid = spawn(*cmd, opts)
wait_thr = Process.detach(pid)
child_io.each(&:close)
result = [*parent_io, wait_thr]
if defined? yield
begin
return yield(*result)
ensure
parent_io.each(&:close)
wait_thr.join
end
end
result
end