Sha256: 6a1058e8e0dbce752d51e1903a9c5dc6cf3db759fe26a2fb041a81d4ef5ff13f
Contents?: true
Size: 559 Bytes
Versions: 176
Compression:
Stored size: 559 Bytes
Contents
module Tins module Once include File::Constants module_function def only_once(lock_filename = nil, locking_constant = nil) lock_filename ||= $0 locking_constant ||= LOCK_EX f = File.new(lock_filename, RDONLY) f.flock(locking_constant) and yield ensure if f f.flock LOCK_UN f.close end end def try_only_once(lock_filename = nil, locking_constant = nil, &block) only_once(lock_filename, locking_constant || LOCK_EX | LOCK_NB, &block) end end end require 'tins/alias'
Version data entries
176 entries across 158 versions & 9 rubygems