summary refs log tree commit diff
path: root/synapse/util/caches/dictionary_cache.py
diff options
context:
space:
mode:
authorNeil Johnson <neil@fragile.org.uk>2018-03-26 11:29:10 +0100
committerNeil Johnson <neil@fragile.org.uk>2018-03-26 11:29:10 +0100
commit36c43eef17173439cd8f6773e4994bc4d5086d3d (patch)
tree1fd10b3477d49b248cf0d8f86f5a6ad44dc8b149 /synapse/util/caches/dictionary_cache.py
parentmore simplejson (diff)
parentfix typo (diff)
downloadsynapse-36c43eef17173439cd8f6773e4994bc4d5086d3d.tar.xz
Merge branch 'develop' of https://github.com/matrix-org/synapse into matrix-org-hotfixes
Diffstat (limited to 'synapse/util/caches/dictionary_cache.py')
-rw-r--r--synapse/util/caches/dictionary_cache.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/synapse/util/caches/dictionary_cache.py b/synapse/util/caches/dictionary_cache.py

index d4105822b3..1709e8b429 100644 --- a/synapse/util/caches/dictionary_cache.py +++ b/synapse/util/caches/dictionary_cache.py
@@ -132,9 +132,13 @@ class DictionaryCache(object): self._update_or_insert(key, value, known_absent) def _update_or_insert(self, key, value, known_absent): - entry = self.cache.setdefault(key, DictionaryEntry(False, set(), {})) + # We pop and reinsert as we need to tell the cache the size may have + # changed + + entry = self.cache.pop(key, DictionaryEntry(False, set(), {})) entry.value.update(value) entry.known_absent.update(known_absent) + self.cache[key] = entry def _insert(self, key, value, known_absent): self.cache[key] = DictionaryEntry(True, known_absent, value)