> [Tim] > >> I wonder whether it's actually a good idea for PyMem_New (etc) to ... > > [Guido] > > Well, then you would have to provide yet another set of macros that > > don't require the GIL, for use by extensions that need to allocate > > memory while not holding the GIL. [Tim] > BTW, where does it say it's OK to use PyMem_XXX when not holding the GIL? > The only exceptions I know of to "the GIL rule" are listed in the "Thread > State and the Global Interpreter Lock" section, and that doesn't mention > PyMem_XXX. The PyMem_XXX docs don't mention it either, ditto any code > comments I've been able to find. Probably because PyMem didn't exist when that section was written. > I guess it's an intended exception (else you wouldn't have written the > above), but I want to make sure. Now that you mention it, I'm not at all sure. I just assumed this because the implementation always ends up calling malloc/realloc/free and nothing else, and *those* are definitely allowed outside the GIL. I think what's documented is of little value here given that few people bother to read it, and most people instead read the source. :-( --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4