Добрый день. Суть вопроса:
используется ограниченный пул корутин, при заполнении ожидается с помощью вот такой конструкции:
done, pending = await asyncio.wait(pool, return_when=asyncio.FIRST_COMPLETED)
При этом если постоянно выводить количество всех тасков в памяти с помощью asyncio.Task.all_tasks(loop), то оно постоянно растет, т.е. даже завершенные таски я удаляю из пула, но они висят в памяти. Когда их становится больше 940, я начинаю получать эксепшены вида "MemoryError. Fatal read error on socket transport...". Я полагаю, что проблема в кривой работе с aiohttp.get, но конкретно.. Что с ними или со мной не так? Код прилагаю.
https://gist.github.com/anonymous/3b4b4e2357c75de0...