method

popen_run

v2_2_9 - Show latest stable - Class: Open3
popen_run(cmd, opts, child_io, parent_io)
private

No documentation available.

# File lib/open3.rb, line 192
  def popen_run(cmd, opts, child_io, parent_io) # :nodoc:
    pid = spawn(*cmd, opts)
    wait_thr = Process.detach(pid)
    child_io.each {|io| io.close }
    result = [*parent_io, wait_thr]
    if defined? yield
      begin
        return yield(*result)
      ensure
        parent_io.each{|io| io.close unless io.closed?}
        wait_thr.join
      end
    end
    result
  end