diff options
author | Erik Johnston <erik@matrix.org> | 2019-10-29 12:53:21 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-29 12:53:21 +0100 |
commit | 561133c3c5fe5789c340ccac395b830e12a3c2b9 (patch) | |
tree | f10f22ea8f939815590d11a44ee308411bccd401 /synapse/util/caches | |
parent | Merge branch 'release-v1.5.0' of github.com:matrix-org/synapse into develop (diff) | |
parent | Update docstring (diff) | |
download | synapse-561133c3c5fe5789c340ccac395b830e12a3c2b9.tar.xz |
Merge pull request #6263 from matrix-org/erikj/caches_return_deferreds
Quick fix to ensure cache descriptors always return deferreds
Diffstat (limited to 'synapse/util/caches')
-rw-r--r-- | synapse/util/caches/descriptors.py | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/synapse/util/caches/descriptors.py b/synapse/util/caches/descriptors.py index 5ac2530a6a..0e8da27f53 100644 --- a/synapse/util/caches/descriptors.py +++ b/synapse/util/caches/descriptors.py @@ -438,7 +438,7 @@ class CacheDescriptor(_CacheDescriptorBase): if isinstance(cached_result_d, ObservableDeferred): observer = cached_result_d.observe() else: - observer = cached_result_d + observer = defer.succeed(cached_result_d) except KeyError: ret = defer.maybeDeferred( @@ -482,9 +482,8 @@ class CacheListDescriptor(_CacheDescriptorBase): Given a list of keys it looks in the cache to find any hits, then passes the list of missing keys to the wrapped function. - Once wrapped, the function returns either a Deferred which resolves to - the list of results, or (if all results were cached), just the list of - results. + Once wrapped, the function returns a Deferred which resolves to the list + of results. """ def __init__( @@ -618,7 +617,7 @@ class CacheListDescriptor(_CacheDescriptorBase): ) return make_deferred_yieldable(d) else: - return results + return defer.succeed(results) obj.__dict__[self.orig.__name__] = wrapped |