class FlockMutex
Public Class Methods
new(path)
click to toggle source
# File lib/flock_mutex.rb, line 2 def initialize(path) @file = File.open(path, 'a') end
Public Instance Methods
lock()
click to toggle source
# File lib/flock_mutex.rb, line 6 def lock @file.flock(File::LOCK_EX) self end
locked?()
click to toggle source
# File lib/flock_mutex.rb, line 23 def locked? File.open(@file.path, 'a') do |f| ! f.flock(File::LOCK_EX | File::LOCK_NB) end end
synchronize() { || ... }
click to toggle source
# File lib/flock_mutex.rb, line 16 def synchronize lock yield ensure unlock end
unlock()
click to toggle source
# File lib/flock_mutex.rb, line 11 def unlock @file.flock(File::LOCK_UN) self end