Fix: futures exceptions were never retrieved

This commit is contained in:
Serhii Dylda 2020-10-08 12:31:05 +02:00
parent e28fbc6678
commit 6ad7353377
2 changed files with 3 additions and 0 deletions

View File

@ -311,6 +311,7 @@ class UpdateMethods:
if self._dispatching_updates_queue is None:
task = self._loop.create_task(self._dispatch_update(*args))
self._updates_queue.add(task)
task.add_done_callback(lambda _: None if task.cancelled() else task.exception())
task.add_done_callback(lambda _: self._updates_queue.discard(task))
else:
self._updates_queue.put_nowait(args)

View File

@ -315,6 +315,7 @@ class MTProtoSender:
for state in self._pending_state.values():
if error and not state.future.done():
state.future.set_exception(error)
state.future.exception()
else:
state.future.cancel()
@ -331,6 +332,7 @@ class MTProtoSender:
if self._disconnected and not self._disconnected.done():
if error:
self._disconnected.set_exception(error)
self._disconnected.exception()
else:
self._disconnected.set_result(None)