Class: Bio::MAF::JThreadRunner
- Inherits:
-
Object
- Object
- Bio::MAF::JThreadRunner
- Defined in:
- lib/bio/maf/jobs.rb
Instance Method Summary collapse
- #add(&blk) ⇒ Object
-
#initialize(n_parallel) ⇒ JThreadRunner
constructor
A new instance of JThreadRunner.
- #run ⇒ Object
Constructor Details
#initialize(n_parallel) ⇒ JThreadRunner
Returns a new instance of JThreadRunner.
77 78 79 80 81 82 |
# 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 |
Instance Method Details
#add(&blk) ⇒ Object
84 85 86 87 |
# File 'lib/bio/maf/jobs.rb', line 84 def add(&blk) @ecs.submit(&blk) @n += 1 end |
#run ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# 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 |