class AWS::Flow::Core::ExternalConditionVariable

Wrapper around a ruby {Mutex} and {ConditionVariable} to avoid writing the synchronization lines repeatedly. {ExternalConditionVariable#wait} will block the thread until {ConditionVariable} @cond is signalled

Attributes

cond[R]
mutex[R]

Public Class Methods

new() click to toggle source
# File lib/aws/flow/future.rb, line 201
def initialize
  @mutex = Mutex.new
  @cond = ConditionVariable.new
end

Public Instance Methods

method_missing(method, *args) click to toggle source

Pass all messages to the encapsulated {ConditionVariable}

# File lib/aws/flow/future.rb, line 212
def method_missing(method, *args)
  @cond.send(method, *args)
end
wait(timeout=nil) click to toggle source

Block the thread till @cond is signalled

# File lib/aws/flow/future.rb, line 207
def wait(timeout=nil)
  @mutex.synchronize { @cond.wait(@mutex, timeout) }
end