Class: Popart::Worker

Inherits:
Object
  • Object
show all
Defined in:
lib/popart/worker.rb

Instance Method Summary collapse

Constructor Details

#initialize(browsers, lock) ⇒ Worker

Returns a new instance of Worker.



3
4
5
6
7
# File 'lib/popart/worker.rb', line 3

def initialize browsers, lock
  @browsers = browsers
  @lock = lock
  @work_remains = true
end

Instance Method Details

#perform(&action) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/popart/worker.rb', line 9

def perform &action
  while @work_remains
    browser = @lock.synchronize { @browsers.shift }
    if browser
      yield browser
      browser.cleanup
    else
      @work_remains = false
    end
  end
end