Class: Parapool::Synchronizer

Inherits:
Object
  • Object
show all
Includes:
MonitorMixin
Defined in:
lib/parapool/synchronizer.rb

Instance Method Summary collapse

Constructor Details

#initialize(count) ⇒ Synchronizer

Returns a new instance of Synchronizer.



7
8
9
10
11
12
13
# File 'lib/parapool/synchronizer.rb', line 7

def initialize(count)
  super()

  @count = count

  @completed = new_cond
end

Instance Method Details

#countObject



15
16
17
18
19
20
21
22
23
# File 'lib/parapool/synchronizer.rb', line 15

def count
  synchronize do
    @count -= 1

    @completed.broadcast
  end

  self
end

#waitObject



25
26
27
28
29
30
31
# File 'lib/parapool/synchronizer.rb', line 25

def wait
  synchronize do
    @completed.wait_until { @count.zero? }
  end

  self
end