diff options
author | Krombel <krombel@krombel.de> | 2018-03-28 14:45:28 +0200 |
---|---|---|
committer | Krombel <krombel@krombel.de> | 2018-03-28 14:45:28 +0200 |
commit | 6152e253d842eb4f72be975850450f00c0662e43 (patch) | |
tree | 5fa7c6cef720825e05076190c7d0e1f45565a4b5 /synapse/util/caches/dictionary_cache.py | |
parent | move handling of auto_join_rooms to RegisterHandler (diff) | |
parent | Merge pull request #3042 from matrix-org/fix_locally_failing_tests (diff) | |
download | synapse-6152e253d842eb4f72be975850450f00c0662e43.tar.xz |
Merge branch 'develop' of into allow_auto_join_rooms
Diffstat (limited to 'synapse/util/caches/dictionary_cache.py')
-rw-r--r-- | synapse/util/caches/dictionary_cache.py | 6 |
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) |