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