diff options
Diffstat (limited to 'Library/Homebrew/keg.rb')
| -rw-r--r-- | Library/Homebrew/keg.rb | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb index 3a4d01262..4949d24dc 100644 --- a/Library/Homebrew/keg.rb +++ b/Library/Homebrew/keg.rb @@ -61,6 +61,18 @@ class Keg < Pathname parent.basename.to_s end + def lock + path = HOMEBREW_CACHE_FORMULA/"#{fname}.brewing" + file = path.open(File::RDWR | File::CREAT) + unless file.flock(File::LOCK_EX | File::LOCK_NB) + raise OperationInProgressError, fname + end + yield + ensure + file.flock(File::LOCK_UN) + file.close + end + def linked_keg_record @linked_keg_record ||= HOMEBREW_REPOSITORY/"Library/LinkedKegs"/fname end |
