Mercurial > public > mercurial-scm > hg
comparison mercurial/revlog.py @ 26242:d708873f1f33
revlog: drop local assignment of cache variable
The purpose of this code was to provide thread safety. With the
conversion of hgweb to use separate localrepository instances per
request/thread, we should no longer have any consumers that need to
access revlog instances from multiple threads. Remove the code.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 12 Sep 2015 15:16:47 -0700 |
parents | eb97d49768cc |
children | 836291420d53 |
comparison
equal
deleted
inserted
replaced
26241:eb97d49768cc | 26242:d708873f1f33 |
---|---|
1047 node = self.node(rev) | 1047 node = self.node(rev) |
1048 else: | 1048 else: |
1049 node = nodeorrev | 1049 node = nodeorrev |
1050 rev = None | 1050 rev = None |
1051 | 1051 |
1052 _cache = self._cache # grab local copy of cache to avoid thread race | |
1053 cachedrev = None | 1052 cachedrev = None |
1054 if node == nullid: | 1053 if node == nullid: |
1055 return "" | 1054 return "" |
1056 if _cache: | 1055 if self._cache: |
1057 if _cache[0] == node: | 1056 if self._cache[0] == node: |
1058 return _cache[2] | 1057 return self._cache[2] |
1059 cachedrev = _cache[1] | 1058 cachedrev = self._cache[1] |
1060 | 1059 |
1061 # look up what we need to read | 1060 # look up what we need to read |
1062 text = None | 1061 text = None |
1063 if rev is None: | 1062 if rev is None: |
1064 rev = self.rev(node) | 1063 rev = self.rev(node) |
1082 iterrev -= 1 | 1081 iterrev -= 1 |
1083 e = index[iterrev] | 1082 e = index[iterrev] |
1084 | 1083 |
1085 if iterrev == cachedrev: | 1084 if iterrev == cachedrev: |
1086 # cache hit | 1085 # cache hit |
1087 text = _cache[2] | 1086 text = self._cache[2] |
1088 else: | 1087 else: |
1089 chain.append(iterrev) | 1088 chain.append(iterrev) |
1090 chain.reverse() | 1089 chain.reverse() |
1091 | 1090 |
1092 # drop cache to save memory | 1091 # drop cache to save memory |