summary refs log tree commit diff
path: root/synapse/util/async_helpers.py
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2020-02-04 12:07:05 +0000
committerRichard van der Hoff <richard@matrix.org>2020-02-04 12:07:05 +0000
commit5ef91b96f1cadbdf981f4e67c2dc97d0bb290d6c (patch)
tree47c7979d13fe0f1f9dc86af39065830a0289fbcc /synapse/util/async_helpers.py
parentmake FederationClient.send_invite async (diff)
parentMerge pull request #6837 from matrix-org/rav/federation_async (diff)
downloadsynapse-5ef91b96f1cadbdf981f4e67c2dc97d0bb290d6c.tar.xz
Merge remote-tracking branch 'origin/develop' into rav/federation_client_async
Diffstat (limited to 'synapse/util/async_helpers.py')
-rw-r--r--synapse/util/async_helpers.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/synapse/util/async_helpers.py b/synapse/util/async_helpers.py

index 04b6abdc24..581dffd8a0 100644 --- a/synapse/util/async_helpers.py +++ b/synapse/util/async_helpers.py
@@ -73,6 +73,10 @@ class ObservableDeferred(object): def errback(f): object.__setattr__(self, "_result", (False, f)) while self._observers: + # This is a little bit of magic to correctly propagate stack + # traces when we `await` on one of the observer deferreds. + f.value.__failure__ = f + try: # TODO: Handle errors here. self._observers.pop().errback(f)