Class: Graticule::Geocoder::Multi::ParallelLookup
- Inherits:
-
Object
- Object
- Graticule::Geocoder::Multi::ParallelLookup
- Defined in:
- lib/graticule/geocoder/multi.rb
Overview
:nodoc:
Instance Method Summary collapse
-
#initialize ⇒ ParallelLookup
constructor
A new instance of ParallelLookup.
- #perform(&block) ⇒ Object
- #result ⇒ Object
- #result=(result) ⇒ Object
Constructor Details
#initialize ⇒ ParallelLookup
Returns a new instance of ParallelLookup.
77 78 79 80 |
# File 'lib/graticule/geocoder/multi.rb', line 77 def initialize @threads = [] @monitor = Monitor.new end |
Instance Method Details
#perform(&block) ⇒ Object
82 83 84 85 86 |
# File 'lib/graticule/geocoder/multi.rb', line 82 def perform(&block) @threads << Thread.new do self.result = block.call end end |
#result ⇒ Object
97 98 99 100 |
# File 'lib/graticule/geocoder/multi.rb', line 97 def result @threads.each(&:join) @result end |
#result=(result) ⇒ Object
88 89 90 91 92 93 94 95 |
# File 'lib/graticule/geocoder/multi.rb', line 88 def result=(result) if result @monitor.synchronize do @result = result @threads.each(&:kill) end end end |