STINNER Victor added the comment:

Ok, initial patches are attached. Let describe them a little bit.

- pymem_debugcheckgil-2.patch: I don't think that this patch can be commited 
before the "bootstrap" issue is solved (Python doesn't start in debug mode with 
this patch when -W or -X command line option is used). I wrote it to check that 
other patches are correct (check if the GIL is held when PyMem_Malloc is 
called).

- py_finalize.patch: should be safe

- malloc_init.patch: change _Py_char2wchar() API, the result must now be freed 
by PyMem_RawFree() instead of PyMem_Free(). the change does not hurt in release 
mode (both functions are just wrapper to free()), but may break in debug mode 
(because python checks that PyMem_RawFree() is called on a buffer allocated by 
PyMem_RawMalloc()) in extension modules using _Py_char2wchar(). I would like to 
_Py_char2wchar() API (not to solve this issue, just because it is very useful 
for applications embedding Python), so changing its name would avoid a crash 
(applications would get a compilation or link error instead). Other change of 
the patch: replace free() and PyMem_Free() with PyMem_RawFree(), should be safe.

- malloc_modules.patch: I replaced many malloc() with PyMem_Malloc(), which is 
not safe.

All these patches must be reviewed carefully to check if the GIL is held or 
not, and tested with pymem_debugcheckgil-2.patch (on Windows too! some patched 
functions os posixmodule.c are only compiled on Windows).

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue18203>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to