mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
regression: don't clear anymore the state of Python threads early during the Python shutdown.
This commit is contained in:
parent
e755fba2d1
commit
15054c16c8
3 changed files with 9 additions and 64 deletions
|
@ -582,13 +582,11 @@ Py_Finalize(void)
|
|||
_Py_Finalizing = tstate;
|
||||
initialized = 0;
|
||||
|
||||
/* Destroy the state of all threads except of the current thread: in
|
||||
practice, only daemon threads should still be alive. Clear frames of
|
||||
other threads to call objects destructor. Destructors will be called in
|
||||
the current Python thread. Since _Py_Finalizing has been set, no other
|
||||
Python threads can lock the GIL at this point (if they try, they will
|
||||
exit immediately). */
|
||||
_PyThreadState_DeleteExcept(tstate);
|
||||
/* Flush stdout+stderr */
|
||||
flush_std_files();
|
||||
|
||||
/* Disable signal handling */
|
||||
PyOS_FiniInterrupts();
|
||||
|
||||
/* Collect garbage. This may call finalizers; it's nice to call these
|
||||
* before all modules are destroyed.
|
||||
|
@ -603,7 +601,6 @@ Py_Finalize(void)
|
|||
* XXX I haven't seen a real-life report of either of these.
|
||||
*/
|
||||
PyGC_Collect();
|
||||
|
||||
#ifdef COUNT_ALLOCS
|
||||
/* With COUNT_ALLOCS, it helps to run GC multiple times:
|
||||
each collection might release some types from the type
|
||||
|
@ -611,13 +608,6 @@ Py_Finalize(void)
|
|||
while (PyGC_Collect() > 0)
|
||||
/* nothing */;
|
||||
#endif
|
||||
|
||||
/* Flush stdout+stderr */
|
||||
flush_std_files();
|
||||
|
||||
/* Disable signal handling */
|
||||
PyOS_FiniInterrupts();
|
||||
|
||||
/* Destroy all modules */
|
||||
PyImport_Cleanup();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue