From 84c560061d7b5d0bc495be356a249ff7522c0591 Mon Sep 17 00:00:00 2001 From: "szager@chromium.org" Date: Sat, 23 Aug 2014 03:33:28 +0000 Subject: [PATCH] Do threading.Lock the Right Way. R=cmp@chromium.org, dnj@chromium.org, iannucci@chromium.org BUG= Review URL: https://codereview.chromium.org/499003002 git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@291573 0039d316-1c4b-4281-b951-d872f2087c98 --- git_cache.py | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/git_cache.py b/git_cache.py index d6ed2a82d3..bfdef80d79 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."""