[FIX] correct threading problems in cache
bzr revid: chs@tinyerp.com-20100120163327-nwfb0vs9cs3n3cl0
This commit is contained in:
parent
8fe0b562bc
commit
5303dc2e92
|
@ -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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue