# File lib/open4-vendor.rb, line 113 def add_thread *a, &b @running ? raise : (@argv << [a, b]) end
# File lib/open4-vendor.rb, line 154 def all_done @threads.size.times{ @done.pop } end
take down process more nicely
# File lib/open4-vendor.rb, line 120 def killall c = Thread.critical return nil if @killed Thread.critical = true (@threads - [Thread.current]).each{|t| t.kill rescue nil} @killed = true ensure Thread.critical = c end
# File lib/open4-vendor.rb, line 130 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
Generated with the Darkfish Rdoc Generator 2.