summaryrefslogtreecommitdiffstats
path: root/pym/eclass_cache.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/eclass_cache.py')
-rw-r--r--pym/eclass_cache.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/pym/eclass_cache.py b/pym/eclass_cache.py
index 904e63261..6b4f87cd6 100644
--- a/pym/eclass_cache.py
+++ b/pym/eclass_cache.py
@@ -50,14 +50,19 @@ class cache:
except OSError:
continue
ys=y[:-eclass_len]
- self.eclasses[ys] = long(mtime)
+ self.eclasses[ys] = (x, long(mtime))
self._eclass_locations[ys] = x
def is_eclass_data_valid(self, ec_dict):
if not isinstance(ec_dict, dict):
return False
for eclass, mtime in ec_dict.iteritems():
- if eclass not in self.eclasses or mtime != self.eclasses[eclass]:
+ cached_data = self.eclasses.get(eclass, None)
+ """ Only use the mtime for validation since the probability of a
+ collision is small and, depending on the cache implementation, the
+ path may not be specified (cache from rsync mirrors, for example).
+ """
+ if cached_data is None or mtime != cached_data[1]:
return False
return True