Method: Tins::Once.only_once
- Defined in:
- lib/tins/once.rb
.only_once(lock_filename = nil, locking_constant = nil) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/tins/once.rb', line 7 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 |