diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2020-06-16 12:01:18 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-16 12:01:18 -0400 |
commit | 231252516c8143f5da55a72239a8db6d740f259f (patch) | |
tree | 9045b279debeefd75cd4a99084c6007fbfd4e20a /synapse | |
parent | Add instructions for authing with Keycloak via OpenID (#7659) (diff) | |
download | synapse-231252516c8143f5da55a72239a8db6d740f259f.tar.xz |
Fix "argument of type 'ObservableDeferred' is not iterable" error (#7708)
Diffstat (limited to '')
-rw-r--r-- | synapse/storage/data_stores/main/receipts.py | 9 | ||||
-rw-r--r-- | synapse/util/async_helpers.py | 2 |
2 files changed, 6 insertions, 5 deletions
diff --git a/synapse/storage/data_stores/main/receipts.py b/synapse/storage/data_stores/main/receipts.py index cebdcd409f..d4a7163049 100644 --- a/synapse/storage/data_stores/main/receipts.py +++ b/synapse/storage/data_stores/main/receipts.py @@ -24,6 +24,7 @@ from twisted.internet import defer from synapse.storage._base import SQLBaseStore, make_in_list_sql_clause from synapse.storage.database import Database from synapse.storage.util.id_generators import StreamIdGenerator +from synapse.util.async_helpers import ObservableDeferred from synapse.util.caches.descriptors import cached, cachedInlineCallbacks, cachedList from synapse.util.caches.stream_change_cache import StreamChangeCache @@ -300,10 +301,10 @@ class ReceiptsWorkerStore(SQLBaseStore): room_id, None, update_metrics=False ) - # first handle the Deferred case - if isinstance(res, defer.Deferred): - if res.called: - res = res.result + # first handle the ObservableDeferred case + if isinstance(res, ObservableDeferred): + if res.has_called(): + res = res.get_result() else: res = None diff --git a/synapse/util/async_helpers.py b/synapse/util/async_helpers.py index df42486351..65abf0846e 100644 --- a/synapse/util/async_helpers.py +++ b/synapse/util/async_helpers.py @@ -93,7 +93,7 @@ class ObservableDeferred(object): This returns a brand new deferred that is resolved when the underlying deferred is resolved. Interacting with the returned deferred does not - effect the underdlying deferred. + effect the underlying deferred. """ if not self._result: d = defer.Deferred() |