2014-03-08 12:45 GMT+01:00 Antoine Pitrou <[email protected]>:
>> 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
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com