module MongoOplogBackup::Lockable
Public Class Methods
included(base)
click to toggle source
# File lib/mongo_oplog_backup/lock.rb, line 6 def self.included(base) base.extend(self) end
Public Instance Methods
lock(lockname) { || ... }
click to toggle source
# File lib/mongo_oplog_backup/lock.rb, line 10 def lock(lockname, &block) File.open(lockname, File::RDWR|File::CREAT, 0644) do |file| # Get a non-blocking lock got_lock = file.flock(File::LOCK_EX|File::LOCK_NB) if got_lock == false raise LockError, "Failed to acquire lock - another backup may be busy" end yield end end