2014-03-08 12:45 GMT+01:00 Antoine Pitrou <solip...@pitrou.net>:
>> Attached script: never_deleted2.py, it's almost the same but it
>> explains better the problem. The script creates MyObject and Future
>> objects which are never deleted. Calling gc.collect() does *not* break
>> the reference cycle (between the future, the exception, traceback and
>> frames). Stopping the event loop does not remove Future nor MyObject
>> objects. Only exiting Python does remove the Future object.
>
> So clearly the coroutine must be kept alive by something.

It's a reference cycle. Something like that:

Future -> Exception -> Traceback -> Frames -> Local variables ->
{Future, MyObject}

Victor
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to