diff options
author | Mark Haines <mark.haines@matrix.org> | 2015-05-21 11:13:19 +0100 |
---|---|---|
committer | Mark Haines <mark.haines@matrix.org> | 2015-05-21 16:41:39 +0100 |
commit | d61ce3f6707c3f13a21733e356766d0292815ebc (patch) | |
tree | f279764864a6898f160b3e7254b9534f7d4dcaeb /synapse/util/lrucache.py | |
parent | Merge branch 'hotfixes-v0.9.0-r4' of github.com:matrix-org/synapse (diff) | |
download | synapse-d61ce3f6707c3f13a21733e356766d0292815ebc.tar.xz |
Add a cache for get_current_state with state_key
Diffstat (limited to '')
-rw-r--r-- | synapse/util/lrucache.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/synapse/util/lrucache.py b/synapse/util/lrucache.py index 96163c90f1..cacd7e45fa 100644 --- a/synapse/util/lrucache.py +++ b/synapse/util/lrucache.py @@ -20,7 +20,6 @@ import threading class LruCache(object): """Least-recently-used cache.""" - # TODO(mjark) Add mutex for linked list for thread safety. def __init__(self, max_size): cache = {} list_root = [] @@ -106,6 +105,12 @@ class LruCache(object): return default @synchronized + def cache_clear(): + list_root[NEXT] = list_root + list_root[PREV] = list_root + cache.clear() + + @synchronized def cache_len(): return len(cache) @@ -120,6 +125,7 @@ class LruCache(object): self.pop = cache_pop self.len = cache_len self.contains = cache_contains + self.clear = cache_clear def __getitem__(self, key): result = self.get(key, self.sentinel) |