lib/sdb_lock.rb in sdb_lock-0.0.1 vs lib/sdb_lock.rb in sdb_lock-0.0.2
- old
+ new
@@ -25,10 +25,13 @@
# Attribute name to be used to save locked time
LOCK_TIME = 'lock_time'
+ # Max wait secs for #lock
+ MAX_WAIT_SECS = 2
+
# Constructor
#
# @param [String] domain_name SimpleDB domain name
# @param [Hash] options
def initialize(domain_name, options = {})
@@ -67,10 +70,10 @@
def lock(resource_name)
wait_secs = 0.5
while true
lock = try_lock(resource_name)
break if lock
- sleep(wait_secs)
+ sleep([wait_secs, MAX_WAIT_SECS].min)
wait_secs *= 2
end
if block_given?
begin