Index: git_cache.py |
diff --git a/git_cache.py b/git_cache.py |
index d6ed2a82d313980da46e1f0d5bd936fce043c0f5..bfdef80d797431d12a3c922a0236ff6931e4875c 100755 |
--- a/git_cache.py |
+++ b/git_cache.py |
@@ -200,25 +200,23 @@ class Mirror(object): |
@classmethod |
def SetCachePath(cls, cachepath): |
- cls.cachepath_lock.acquire() |
- setattr(cls, 'cachepath', cachepath) |
- cls.cachepath_lock.release() |
+ with cls.cachepath_lock: |
+ setattr(cls, 'cachepath', cachepath) |
@classmethod |
def GetCachePath(cls): |
- cls.cachepath_lock.acquire() |
- if not hasattr(cls, 'cachepath'): |
- try: |
- cachepath = subprocess.check_output( |
- [cls.git_exe, 'config', '--global', 'cache.cachepath']).strip() |
- except subprocess.CalledProcessError: |
- cachepath = None |
- if not cachepath: |
- cls.cachepath_lock.release() |
- raise RuntimeError('No global cache.cachepath git configuration found.') |
- setattr(cls, 'cachepath', cachepath) |
- cls.cachepath_lock.release() |
- return getattr(cls, 'cachepath') |
+ with cls.cachepath_lock: |
+ if not hasattr(cls, 'cachepath'): |
+ try: |
+ cachepath = subprocess.check_output( |
+ [cls.git_exe, 'config', '--global', 'cache.cachepath']).strip() |
+ except subprocess.CalledProcessError: |
+ cachepath = None |
+ if not cachepath: |
+ raise RuntimeError( |
+ 'No global cache.cachepath git configuration found.') |
+ setattr(cls, 'cachepath', cachepath) |
+ return getattr(cls, 'cachepath') |
def RunGit(self, cmd, **kwargs): |
"""Run git in a subprocess.""" |