From 4d37329c732b394dd521a6568be6b7a5b4c3bd68 Mon Sep 17 00:00:00 2001 From: Kevin Lynch Date: Mon, 17 Oct 2011 01:53:30 -0400 Subject: [PATCH] Must ensure that the lock is always removed. --- lib/gitosis.rb | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/gitosis.rb b/lib/gitosis.rb index a9eef96c..4cc5e6e3 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