Mercurial > hg
changeset 26250:bc1f8a79b4e4
localrepo: move closure of lock release to class
It only captures "self", so it isn't necessary to be created dynamically.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Tue, 15 Sep 2015 21:00:28 +0900 |
parents | 3166bcc0c538 |
children | 5c0f5db65c6b |
files | mercurial/localrepo.py |
diffstat | 1 files changed, 8 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/localrepo.py Wed Sep 16 22:30:36 2015 +0800 +++ b/mercurial/localrepo.py Tue Sep 15 21:00:28 2015 +0900 @@ -1198,6 +1198,13 @@ self.invalidate() self.invalidatedirstate() + def _refreshfilecachestats(self): + """Reload stats of cached files so that they are flagged as valid""" + for k, ce in self._filecache.items(): + if k == 'dirstate' or k not in self.__dict__: + continue + ce.refresh() + def _lock(self, vfs, lockname, wait, releasefn, acquirefn, desc): try: l = lockmod.lock(vfs, lockname, 0, releasefn, desc=desc) @@ -1240,13 +1247,7 @@ l.lock() return l - def unlock(): - for k, ce in self._filecache.items(): - if k == 'dirstate' or k not in self.__dict__: - continue - ce.refresh() - - l = self._lock(self.svfs, "lock", wait, unlock, + l = self._lock(self.svfs, "lock", wait, self._refreshfilecachestats, self.invalidate, _('repository %s') % self.origroot) self._lockref = weakref.ref(l) return l