Method: Open4::ThreadEnsemble#run

Defined in:
lib/open4.rb

#runObject



181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
# 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