STINNER Victor <vstin...@python.org> added the comment:

Victor> I'm not fully happy with this solution

Eric> Should we have an issue open for finding a better solution?  Are there 
risks with what you did that we don't want long-term?

Pablo made a small changes in my workaround, by calling _PyGC_CollectNoFail() 
after PyInterpreterState_Clear().
https://github.com/python/cpython/pull/17457/files

I tried to avoid that, since I consider that no arbitrary Python code should be 
called after PyInterpreterState_Clear(), whereas the GC can trigger arbitrary 
__del__() methods implemented in pure Python. See discussion at 
https://github.com/python/cpython/pull/17457

Each time I tried to fix a bug in the Python finalization, I introduced worse 
bugs :-D

We cannot fix all bugs at once, we have to work incrementally. I like the idea 
of introducing workarounds specific to subinterpreters: leave the code path for 
the main interpreter unchanged. It helps to iterate on the code to slowly fix 
the code.

I prefer to not open an issue, since the Python finalization is broken is so 
many ways :-D Anyway, I'm hitting issues on the finalization each time I'm 
working on subinterpeter changes, so it's hard to forget about it :-)

I started to take notes at:
https://github.com/python/cpython/pull/17457/files

----------

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

Reply via email to