Class: Barrier
- Inherits:
-
Object
- Object
- Barrier
- Defined in:
- lib/jkr/utils.rb
Instance Method Summary collapse
-
#initialize(num) ⇒ Barrier
constructor
A new instance of Barrier.
- #wait ⇒ Object
Constructor Details
#initialize(num) ⇒ Barrier
Returns a new instance of Barrier.
9 10 11 12 13 14 15 |
# File 'lib/jkr/utils.rb', line 9 def initialize(num) @mux = Mutex.new @cond = ConditionVariable.new @num = num @cur_num = num end |
Instance Method Details
#wait ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/jkr/utils.rb', line 17 def wait() @mux.lock @cur_num -= 1 if @cur_num == 0 @cur_num = @num @cond.broadcast else @cond.wait(@mux) end @mux.unlock end |