better error handling, true async sending, more readable api

This commit is contained in:
Timothy Pogue
2022-11-18 13:32:27 -07:00
parent ba493eb7a7
commit 0cb6f71c02
4 changed files with 88 additions and 71 deletions

View File

@@ -17,7 +17,8 @@ class MessageStream:
async def subscribe(self):
waiter = self._waiter
while True:
message, waiter = await waiter
# Shield the future from being cancelled by a task waiting on it
message, waiter = await asyncio.shield(waiter)
yield message
__aiter__ = subscribe