diff options
author | Erik Johnston <erik@matrix.org> | 2017-10-25 15:21:08 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2017-10-25 15:21:08 +0100 |
commit | 2a7e9faeec9af8723b9613fef3b3059b1fe777f5 (patch) | |
tree | 53d837f7fdbc2f1ab6ed7c4b1dc797efc60574ac /synapse/appservice | |
parent | Add logging and fix log contexts for publicRooms (diff) | |
download | synapse-2a7e9faeec9af8723b9613fef3b3059b1fe777f5.tar.xz |
Do logcontexts outside ResponseCache
Diffstat (limited to 'synapse/appservice')
-rw-r--r-- | synapse/appservice/api.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/synapse/appservice/api.py b/synapse/appservice/api.py index 6893610e71..40c433d7ae 100644 --- a/synapse/appservice/api.py +++ b/synapse/appservice/api.py @@ -18,6 +18,7 @@ from synapse.api.constants import ThirdPartyEntityKind from synapse.api.errors import CodeMessageException from synapse.http.client import SimpleHttpClient from synapse.events.utils import serialize_event +from synapse.util.logcontext import preserve_fn, make_deferred_yieldable from synapse.util.caches.response_cache import ResponseCache from synapse.types import ThirdPartyInstanceID @@ -192,9 +193,12 @@ class ApplicationServiceApi(SimpleHttpClient): defer.returnValue(None) key = (service.id, protocol) - return self.protocol_meta_cache.get(key) or ( - self.protocol_meta_cache.set(key, _get()) - ) + result = self.protocol_meta_cache.get(key) + if not result: + result = self.protocol_meta_cache.set( + key, preserve_fn(_get)() + ) + return make_deferred_yieldable(result) @defer.inlineCallbacks def push_bulk(self, service, events, txn_id=None): |