Class: Java::ComHazelcastClient::LockClientProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/hazelcast-client/lock.rb

Instance Method Summary collapse

Instance Method Details

#locking(options = {}) ⇒ Object

lock() unlock()



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/hazelcast-client/lock.rb', line 6

def locking(options = {})
  raise 'Must provide a block' unless block_given?
  tries = options[:tries] || 1
  timeout = options[:timeout] || 5
  unit = options[:unit] || :seconds
  unit = java.util.concurrent.TimeUnit.const_get unit.to_s.upcase if unit.is_a? Symbol
  failed = options[:failed] || false
  result = nil
  while tries > 0
    if try_lock(timeout, unit)
      tries = 0
      result = yield
      unlock
      return result
    else
      tries -= 1
    end
  end
  failed
end