On Friday, March 27, 2015 at 7:17:26 AM UTC-7, Ian wrote: > On Fri, Mar 27, 2015 at 6:38 AM, Marko Rauhamaa wrote: > > I don't know the answer to your question. A superficial glance at the > > relevant asyncio source code (and documentation) suggests you shouldn't > > be seeing what you are seeing. > > > > Tasks are kept in a weak set. Tasks should evaporate as soon as nobody > > references them. > > Actually I think this explains it. In the OP's while loop, he updates > his task list with the line: > > tasks = asyncio.Task.all_tasks(loop) > > This creates a strong reference to each of the returned tasks. When > the loop comes back around, it calls all_tasks again, creating a > second strong reference to each task, then assigns the resulting set > to tasks, allowing the original set to be collected. At no point in > the loop is there ever not a strong reference to each task. So if > asyncio is relying on GC to prune its task set, they will never be > cleaned up. > > To the OP: try deleting the tasks variable after you print it out. I > bet this will solve your problem.
I missed that part. Thanks! -- https://mail.python.org/mailman/listinfo/python-list