Class: ProcessShared::ConditionVariable

Inherits:
Object
  • Object
show all
Defined in:
lib/process_shared/condition_variable.rb

Overview

TODO: implement this

Instance Method Summary collapse

Constructor Details

#initializeConditionVariable

Returns a new instance of ConditionVariable.



6
7
8
# File 'lib/process_shared/condition_variable.rb', line 6

def initialize
  @sem = Semaphore.new
end

Instance Method Details

#broadcastObject



10
11
12
# File 'lib/process_shared/condition_variable.rb', line 10

def broadcast
  @sem.post
end

#signalObject



14
15
16
# File 'lib/process_shared/condition_variable.rb', line 14

def signal
  @sem.post
end

#wait(mutex, timeout = nil) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/process_shared/condition_variable.rb', line 18

def wait(mutex, timeout = nil)
  mutex.unlock
  begin
    @sem.wait
  ensure
    mutex.lock
  end
end