Must ensure that the lock is always removed.
This commit is contained in:
parent
ef2bf15204
commit
4d37329c73
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue