[Python-checkins] cpython: Backout 62658d9d8926 (issue #10241): it causes a crash at shutdown when
antoine.pitrou
python-checkins at python.org
Fri Aug 2 20:40:41 CEST 2013
http://hg.python.org/cpython/rev/314a872f54e1
changeset: 84979:314a872f54e1
user: Antoine Pitrou <solipsis at pitrou.net>
date: Fri Aug 02 20:39:46 2013 +0200
summary:
Backout 62658d9d8926 (issue #10241): it causes a crash at shutdown when deallocating a Tkapp object.
files:
Include/pystate.h | 3 ---
Misc/NEWS | 3 ---
Python/import.c | 2 --
Python/pystate.c | 25 -------------------------
4 files changed, 0 insertions(+), 33 deletions(-)
diff --git a/Include/pystate.h b/Include/pystate.h
--- a/Include/pystate.h
+++ b/Include/pystate.h
@@ -134,9 +134,6 @@
PyAPI_FUNC(int) PyState_RemoveModule(struct PyModuleDef*);
#endif
PyAPI_FUNC(PyObject*) PyState_FindModule(struct PyModuleDef*);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _PyState_ClearModules(void);
-#endif
PyAPI_FUNC(PyThreadState *) PyThreadState_New(PyInterpreterState *);
PyAPI_FUNC(PyThreadState *) _PyThreadState_Prealloc(PyInterpreterState *);
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,9 +12,6 @@
- Issue #17899: Fix rare file descriptor leak in os.listdir().
-- Issue #10241: Clear extension module dict copies at interpreter shutdown.
- Patch by Neil Schemenauer, minimally modified.
-
- Issue #9035: ismount now recognises volumes mounted below a drive root
on Windows. Original patch by Atsuo Ishimoto.
diff --git a/Python/import.c b/Python/import.c
--- a/Python/import.c
+++ b/Python/import.c
@@ -380,8 +380,6 @@
builtins = interp->builtins;
interp->builtins = PyDict_New();
Py_DECREF(builtins);
- /* Clear module dict copies stored in the interpreter state */
- _PyState_ClearModules();
/* Collect references */
_PyGC_CollectNoFail();
/* Dump GC stats before it's too late, since it uses the warnings
diff --git a/Python/pystate.c b/Python/pystate.c
--- a/Python/pystate.c
+++ b/Python/pystate.c
@@ -320,31 +320,6 @@
return PyList_SetItem(state->modules_by_index, index, Py_None);
}
-/* used by import.c:PyImport_Cleanup */
-void
-_PyState_ClearModules(void)
-{
- PyInterpreterState *state = PyThreadState_GET()->interp;
- if (state->modules_by_index) {
- Py_ssize_t i;
- for (i = 0; i < PyList_GET_SIZE(state->modules_by_index); i++) {
- PyObject *m = PyList_GET_ITEM(state->modules_by_index, i);
- if (PyModule_Check(m)) {
- /* cleanup the saved copy of module dicts */
- PyModuleDef *md = PyModule_GetDef(m);
- if (md)
- Py_CLEAR(md->m_base.m_copy);
- }
- }
- /* Setting modules_by_index to NULL could be dangerous, so we
- clear the list instead. */
- if (PyList_SetSlice(state->modules_by_index,
- 0, PyList_GET_SIZE(state->modules_by_index),
- NULL))
- PyErr_WriteUnraisable(state->modules_by_index);
- }
-}
-
void
PyThreadState_Clear(PyThreadState *tstate)
{
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list