# File lib/open4.rb, line 181 def run @running = true begin @argv.each do |a, b| @threads << Thread.new(*a) do |*_a| begin b[*_a] ensure killall rescue nil if $! @done.push Thread.current end end end rescue killall raise ensure all_done end @threads.map{|t| t.value} end