summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeal Norwitz <nnorwitz@gmail.com>2007-05-02 04:47:55 (GMT)
committerNeal Norwitz <nnorwitz@gmail.com>2007-05-02 04:47:55 (GMT)
commitd83eb316dce49606041304afb6b68e85fb1794af (patch)
tree28968887891d48e627dc15abc3e4a30862777494
parentc0a293c692febd6125f95bce7d4bec7657e0ee9e (diff)
downloadcpython-d83eb316dce49606041304afb6b68e85fb1794af.zip
cpython-d83eb316dce49606041304afb6b68e85fb1794af.tar.gz
cpython-d83eb316dce49606041304afb6b68e85fb1794af.tar.bz2
Stop using PyMem_FREE while the GIL is not held. For details see:
http://mail.python.org/pipermail/python-dev/2007-May/072896.html
-rw-r--r--Include/pymem.h2
-rw-r--r--Modules/posixmodule.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/Include/pymem.h b/Include/pymem.h
index 671f967..7f74f37 100644
--- a/Include/pymem.h
+++ b/Include/pymem.h
@@ -30,6 +30,8 @@ extern "C" {
debugging info to dynamic memory blocks. The system routines have no idea
what to do with that stuff, and the Python wrappers have no idea what to do
with raw blocks obtained directly by the system routines then.
+
+ The GIL must be held when using these APIs.
*/
/*
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 29ef1dc..a63a77a 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -6296,8 +6296,8 @@ posix_fdopen(PyObject *self, PyObject *args)
#else
fp = fdopen(fd, mode);
#endif
- PyMem_FREE(mode);
Py_END_ALLOW_THREADS
+ PyMem_FREE(mode);
if (fp == NULL)
return posix_error();
f = PyFile_FromFile(fp, "<fdopen>", orgmode, fclose);