module Speculation::Pmap
@private
Public Class Methods
pmap_jruby(coll, &block)
click to toggle source
# File lib/speculation/pmap.rb, line 18 def self.pmap_jruby(coll, &block) thread_count = [1, Concurrent.processor_count - 1].max pool = Concurrent::FixedThreadPool.new(thread_count, :auto_terminate => true, :fallback_policy => :abort) coll. map { |x| Concurrent::Future.execute(:executor => pool) { block.call(x) } }. map { |f| f.value || f.reason } ensure pool.shutdown end
Public Instance Methods
pmap(coll, &block)
click to toggle source
# File lib/speculation/pmap.rb, line 9 def pmap(coll, &block) Pmap.pmap_jruby(coll, &block) end