core: in astream_events v2 always await task even if already finished (#22916)

- this ensures exceptions propagate to the caller
This commit is contained in:
Nuno Campos
2024-06-14 12:54:20 -07:00
committed by GitHub
parent 513e491ce9
commit 338180f383

View File

@@ -940,9 +940,10 @@ async def _astream_events_implementation_v2(
yield event yield event
finally: finally:
# Wait for the runnable to finish, if not cancelled (eg. by break) # Cancel the task if it's still running
if task.cancel(): task.cancel()
try: # Await it anyway, to run any cleanup code, and propagate any exceptions
await task try:
except asyncio.CancelledError: await task
pass except asyncio.CancelledError:
pass