[Python-Dev] Removing the GIL (Me, not you!) (original) (raw)

Phillip J. Eby pje at telecommunity.com
Tue Sep 11 21:23:04 CEST 2007


At 10:07 AM 9/11/2007 -0500, Justin Tulloss wrote:

On 9/11/07, "Martin v. Löwis" <<mailto:martin at v.loewis.de>martin at v.loewis.de> wrote: > 1. Some global interpreter state/modules are protected (where are these > globals at?)

It's the interpreter and thread state itself (pystate.h), for the thread state, also PyThreadStateCurrent. Then there is the GC state, in particular "generations". There are various caches and counters also.

Caches seem like they definitely might be a problem. Would you mind expanding on this a little? What gets cached and why?

It's not just caches and counters. It's also every built-in type structure, builtin module, builtin function... any Python object that's a built-in, period. That includes things like None, True, and False.

Caches would include such things as the pre-created integers -100 through 255, the 1-byte character strings for chr(0)-chr(255), and the interned strings cache, to name a few.

Most of these things I've mentioned are truly global, and not specific to an individual interpreter.



More information about the Python-Dev mailing list