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

This issue is partially fixed in the master branch. Extract of the 
finalize_interp_clear() function, called by Py_EndInterpreter():

    /* Clear interpreter state and all thread states */
    PyInterpreterState_Clear(tstate->interp);

    /* Trigger a GC collection on subinterpreters*/
    if (!is_main_interp) {
        _PyGC_CollectNoFail();
    }

gc.collect() is now called.

It's only "partially" fixed because I would prefer to trigger a GC collection 
before or during PyInterpreterState_Clear(). IMHO trigger it after 
PyInterpreterState_Clear() creates a risk of crash in finalizers written in C 
which don't handle well before called very late during Python finalization. 
After PyInterpreterState_Clear(), Python is basically unusable. All modules are 
cleared.

----------

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

Reply via email to