Must ensure that the lock is always removed.

This commit is contained in:
Kevin Lynch 2011-10-17 01:53:30 -04:00
parent ef2bf15204
commit 4d37329c73

View file

@ -27,15 +27,18 @@ class Gitosis
def configure def configure
status = Timeout::timeout(20) do status = Timeout::timeout(20) do
File.open(File.join(Dir.tmpdir,"gitlabhq-gitosis.lock"), "w+") do |f| File.open(File.join(Dir.tmpdir,"gitlabhq-gitosis.lock"), "w+") do |f|
begin
f.flock(File::LOCK_EX) f.flock(File::LOCK_EX)
pull pull
yield(self) yield(self)
push push
ensure
f.flock(File::LOCK_UN) f.flock(File::LOCK_UN)
end end
end end
end
rescue Exception => ex rescue Exception => ex
raise Gitosis::AccessDenied.new("gitosis timeout") raise Gitosis::AccessDenied.new("gitosis timeout")
end end