Module: Gizzard::ParallelMap

Included in:
Nameserver, Nameserver::Manifest
Defined in:
lib/gizzard/nameserver.rb

Instance Method Summary collapse

Instance Method Details

#parallel_map(enumerable, &block) ⇒ Object



3
4
5
6
7
8
9
10
# File 'lib/gizzard/nameserver.rb', line 3

def parallel_map(enumerable, &block)
  enumerable.map do |elem|
    Thread.new { Thread.current[:result] = block.call(elem) }
  end.map do |thread|
    thread.join
    thread[:result]
  end
end