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