class RemoteService::Util::Lock

Public Class Methods

new(timeout=0) click to toggle source
# File lib/remote_service/util/lock.rb, line 6
def initialize(timeout=0)
  @mutex = Mutex.new
  @condition = ConditionVariable.new
  @timeout = timeout
end

Public Instance Methods

unlock(*return_value) click to toggle source
# File lib/remote_service/util/lock.rb, line 12
def unlock(*return_value)
  @return_value = *return_value
  @mutex.synchronize{ @condition.signal }
end
wait() click to toggle source
# File lib/remote_service/util/lock.rb, line 17
def wait
  Timeout.timeout(@timeout) do
    @mutex.synchronize{ @condition.wait(@mutex) }
    @return_value
  end
end