summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Lynch <klynch@gmail.com>2011-10-17 01:53:30 -0400
committerKevin Lynch <klynch@gmail.com>2011-10-17 01:53:30 -0400
commit4d37329c732b394dd521a6568be6b7a5b4c3bd68 (patch)
tree73adbaf01fb7c9566059afcbc7ad9e8a338bd3b9
parentef2bf1520489a23ff64224c3e102a03b46243dbf (diff)
downloadgitlab-ce-4d37329c732b394dd521a6568be6b7a5b4c3bd68.tar.gz
Must ensure that the lock is always removed.
-rw-r--r--lib/gitosis.rb13
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/gitosis.rb b/lib/gitosis.rb
index a9eef96cd3f..4cc5e6e3d08 100644
--- a/lib/gitosis.rb
+++ b/lib/gitosis.rb
@@ -27,13 +27,16 @@ class Gitosis
def configure
status = Timeout::timeout(20) do
File.open(File.join(Dir.tmpdir,"gitlabhq-gitosis.lock"), "w+") do |f|
- f.flock(File::LOCK_EX)
+ begin
+ f.flock(File::LOCK_EX)
- pull
- yield(self)
- push
+ pull
+ yield(self)
+ push
- f.flock(File::LOCK_UN)
+ ensure
+ f.flock(File::LOCK_UN)
+ end
end
end
rescue Exception => ex