class Prometheus::Client::Helper::FileLocker
Constants
- LOCK_FILE_MUTEX
Public Class Methods
lock_to_process(filepath)
click to toggle source
# File lib/prometheus/client/helper/file_locker.rb, line 8 def lock_to_process(filepath) LOCK_FILE_MUTEX.synchronize do @file_locks ||= {} return false if @file_locks[filepath] file = File.open(filepath, 'ab') if file.flock(File::LOCK_NB | File::LOCK_EX) @file_locks[filepath] = file return true else return false end end end
unlock(filepath)
click to toggle source
# File lib/prometheus/client/helper/file_locker.rb, line 23 def unlock(filepath) LOCK_FILE_MUTEX.synchronize do @file_locks ||= {} return false unless @file_locks[filepath] @file_locks.delete(filepath).flock(File::LOCK_UN) end end
unlock_all()
click to toggle source
# File lib/prometheus/client/helper/file_locker.rb, line 32 def unlock_all LOCK_FILE_MUTEX.synchronize do @file_locks ||= {} @file_locks.values.each do |file| file.flock(File::LOCK_UN) end @file_locks = {} end end