Class: JustOneLock::NonBlockingLocker
- Inherits:
-
BaseLocker
- Object
- BaseLocker
- JustOneLock::NonBlockingLocker
- Defined in:
- lib/just_one_lock/non_blocking_locker.rb
Instance Method Summary collapse
Methods inherited from BaseLocker
Instance Method Details
#lock(lock_path, &block) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 |
# File 'lib/just_one_lock/non_blocking_locker.rb', line 2 def lock(lock_path, &block) result = nil File.open(lock_path, File::RDWR|File::CREAT, 0644) do |f| if f.flock(File::LOCK_NB|File::LOCK_EX) result = run(f, lock_path, &block) else fail JustOneLock::AlreadyLocked end end result end |