class Bio::MAF::JThreadRunner
Public Class Methods
new(n_parallel)
click to toggle source
# File lib/bio/maf/jobs.rb, line 77 def initialize(n_parallel) @n_parallel = n_parallel @exec = java.util.concurrent.Executors.newFixedThreadPool(n_parallel) @ecs = java.util.concurrent.ExecutorCompletionService.new(@exec) @n = 0 end
Public Instance Methods
add(&blk)
click to toggle source
# File lib/bio/maf/jobs.rb, line 84 def add(&blk) @ecs.submit(&blk) @n += 1 end
run()
click to toggle source
# File lib/bio/maf/jobs.rb, line 89 def run seen = 0 until seen == @n f = @ecs.take() begin f.get() rescue Exception => e LOG.error e @exec.shutdownNow() raise end seen += 1 end @exec.shutdown() end