lib/mysql_getlock.rb in mysql_getlock-0.1.2 vs lib/mysql_getlock.rb in mysql_getlock-0.2.0
- old
+ new
@@ -64,11 +64,21 @@
true
end
end
def locked?
- results = mysql2.query(%Q[select is_free_lock('#{key}')], as: :array)
- results.to_a.first.first == 0
+ results = mysql2.query(%Q[select is_used_lock('#{key}')], as: :array)
+ !!results.to_a.first.first
+ end
+
+ # return true if locked by myself
+ def self_locked?
+ results = mysql2.query(%Q[select is_used_lock('#{key}')], as: :array)
+ lock_id = results.to_a.first.first
+ return nil if lock_id.nil?
+ results = mysql2.query(%Q[select connection_id()], as: :array)
+ self_id = results.to_a.first.first
+ self_id == lock_id
end
def synchronize(&block)
lock
begin