From a43fd0c8996eec2bdd0ec59edc252cb4f4ff4436 Mon Sep 17 00:00:00 2001 From: Mark Hammond Date: Wed, 19 Feb 2003 00:33:33 +0000 Subject: Fix bug 683658 - PyErr_Warn may cause import deadlock. --- Python/errors.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'Python/errors.c') diff --git a/Python/errors.c b/Python/errors.c index e50960661e..d08c1afc12 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -600,18 +600,17 @@ PyErr_WriteUnraisable(PyObject *obj) Py_XDECREF(tb); } +extern PyObject *PyModule_WarningsModule; /* Function to issue a warning message; may raise an exception. */ int PyErr_Warn(PyObject *category, char *message) { - PyObject *mod, *dict, *func = NULL; + PyObject *dict, *func = NULL; - mod = PyImport_ImportModule("warnings"); - if (mod != NULL) { - dict = PyModule_GetDict(mod); + if (PyModule_WarningsModule != NULL) { + dict = PyModule_GetDict(PyModule_WarningsModule); func = PyDict_GetItemString(dict, "warn"); - Py_DECREF(mod); } if (func == NULL) { PySys_WriteStderr("warning: %s\n", message); -- cgit v1.2.1