Antoine Pitrou added the comment:

The problem is that the order of tp_finalize calls is arbitrary when there is a 
reference cycle (same thing, of course, with tp_clear). So depending on the 
exact layout of the garbage list, the TextIOWrapper could be collected before 
the BufferedWriter and the FileIO (good), or after (bad).

I don't see an easy way to solve this. Either _io should provide hints to the 
GC (which kind of hints?), or the tp_finalize should be customized to somehow 
call a dependent wrapper's tp_finalize (how? by keeping a weakref?).

----------
nosy: +tim.peters

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue17852>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to