[FIX] correct threading problems in cache

bzr revid: chs@tinyerp.com-20100120163327-nwfb0vs9cs3n3cl0
This commit is contained in:
Christophe Simonis 2010-01-20 17:33:27 +01:00
parent 8fe0b562bc
commit 5303dc2e92
1 changed files with 6 additions and 6 deletions

View File

@ -634,13 +634,13 @@ class cache(object):
if *args and **kwargs are both empty, clear all the keys related to this database
"""
if not args and not kwargs:
keys_to_del = [key for key in self.cache if key[0][1] == dbname]
keys_to_del = [key for key in self.cache.keys() if key[0][1] == dbname]
else:
kwargs2 = self._unify_args(*args, **kwargs)
keys_to_del = [key for key, _ in self._generate_keys(dbname, kwargs2) if key in self.cache]
keys_to_del = [key for key, _ in self._generate_keys(dbname, kwargs2) if key in self.cache.keys()]
for key in keys_to_del:
del self.cache[key]
self.cache.pop(key)
@classmethod
def clean_caches_for_db(cls, dbname):
@ -661,10 +661,10 @@ class cache(object):
def cached_result(self2, cr, *args, **kwargs):
if time.time()-int(self.timeout) > self.lasttime:
self.lasttime = time.time()
t = time.time()-int(self.timeout)
old_keys = [key for key in self.cache if self.cache[key][1] < t]
t = time.time()-int(self.timeout)
old_keys = [key for key in self.cache.keys() if self.cache[key][1] < t]
for key in old_keys:
del self.cache[key]
self.cache.pop(key)
kwargs2 = self._unify_args(*args, **kwargs)