summaryrefslogtreecommitdiff
path: root/bin/tools/misc.py
diff options
context:
space:
mode:
authorChristophe Simonis <chs@openerp.com>2010-11-09 17:57:39 +0100
committerChristophe Simonis <chs@openerp.com>2010-11-09 17:57:39 +0100
commitad4f3dfc0b4a23088bdfec7b1e2d458f86993fb7 (patch)
tree307a7e0f565b67984fcaff4697e285cdddaff8cf /bin/tools/misc.py
parentfc158668b7e2997dc32def84b0472d36573fc262 (diff)
[IMP] tools.cache now use a LRU to avoid memory overload
bzr revid: chs@openerp.com-20101109165739-1pm8jhckcyzkb2z1
Diffstat (limited to 'bin/tools/misc.py')
-rw-r--r--bin/tools/misc.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/bin/tools/misc.py b/bin/tools/misc.py
index 6d3aba7b561..90b4c135214 100644
--- a/bin/tools/misc.py
+++ b/bin/tools/misc.py
@@ -50,6 +50,7 @@ else:
import netsvc
from config import config
+from lru import LRU
_logger = logging.getLogger('tools')
@@ -696,7 +697,7 @@ class cache(object):
__caches = []
- def __init__(self, timeout=None, skiparg=2, multi=None):
+ def __init__(self, timeout=None, skiparg=2, multi=None, size=8192):
assert skiparg >= 2 # at least self and cr
if timeout is None:
self.timeout = config['cache_timeout']
@@ -705,7 +706,7 @@ class cache(object):
self.skiparg = skiparg
self.multi = multi
self.lasttime = time.time()
- self.cache = {}
+ self.cache = LRU(size) # TODO take size from config
self.fun = None
cache.__caches.append(self)