try another way to stop a leak

This commit is contained in:
Inex Code 2024-11-11 20:31:18 +03:00
parent cd83f18ee8
commit 77132d8ce3

View file

@ -21,12 +21,17 @@ async def log_stream() -> AsyncGenerator[LogEntry, None]:
asyncio.get_event_loop().add_reader(j, lambda: asyncio.ensure_future(callback()))
while True:
entry = await queue.get()
try:
yield LogEntry(entry)
except Exception:
asyncio.get_event_loop().remove_reader(j)
j.close()
return
queue.task_done()
try:
while True:
entry = await queue.get()
try:
yield LogEntry(entry)
except Exception:
asyncio.get_event_loop().remove_reader(j)
j.close()
return
queue.task_done()
except asyncio.CancelledError:
asyncio.get_event_loop().remove_reader(j)
j.close()
return