mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Move exception finalisation later in the shutdown process - this
fixes the crash seen in bug #1165761
This commit is contained in:
parent
b7e99b642f
commit
12b6f6cac7
2 changed files with 13 additions and 7 deletions
|
@ -7,9 +7,14 @@ Python News
|
||||||
What's New in Python 2.5 alpha 1?
|
What's New in Python 2.5 alpha 1?
|
||||||
=================================
|
=================================
|
||||||
|
|
||||||
|
*Release date: XX-XXX-2006*
|
||||||
|
|
||||||
Core and builtins
|
Core and builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Move exception finalisation later in the shutdown process - this
|
||||||
|
fixes the crash seen in bug #1165761
|
||||||
|
|
||||||
- Added two new builtins, any() and all().
|
- Added two new builtins, any() and all().
|
||||||
|
|
||||||
- Defining a class with empty parentheses is now allowed
|
- Defining a class with empty parentheses is now allowed
|
||||||
|
|
|
@ -392,13 +392,6 @@ Py_Finalize(void)
|
||||||
_Py_PrintReferences(stderr);
|
_Py_PrintReferences(stderr);
|
||||||
#endif /* Py_TRACE_REFS */
|
#endif /* Py_TRACE_REFS */
|
||||||
|
|
||||||
/* Now we decref the exception classes. After this point nothing
|
|
||||||
can raise an exception. That's okay, because each Fini() method
|
|
||||||
below has been checked to make sure no exceptions are ever
|
|
||||||
raised.
|
|
||||||
*/
|
|
||||||
_PyExc_Fini();
|
|
||||||
|
|
||||||
/* Cleanup auto-thread-state */
|
/* Cleanup auto-thread-state */
|
||||||
#ifdef WITH_THREAD
|
#ifdef WITH_THREAD
|
||||||
_PyGILState_Fini();
|
_PyGILState_Fini();
|
||||||
|
@ -407,6 +400,14 @@ Py_Finalize(void)
|
||||||
/* Clear interpreter state */
|
/* Clear interpreter state */
|
||||||
PyInterpreterState_Clear(interp);
|
PyInterpreterState_Clear(interp);
|
||||||
|
|
||||||
|
/* Now we decref the exception classes. After this point nothing
|
||||||
|
can raise an exception. That's okay, because each Fini() method
|
||||||
|
below has been checked to make sure no exceptions are ever
|
||||||
|
raised.
|
||||||
|
*/
|
||||||
|
|
||||||
|
_PyExc_Fini();
|
||||||
|
|
||||||
/* Delete current thread */
|
/* Delete current thread */
|
||||||
PyThreadState_Swap(NULL);
|
PyThreadState_Swap(NULL);
|
||||||
PyInterpreterState_Delete(interp);
|
PyInterpreterState_Delete(interp);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue