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

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 _PyThreadState_Current. 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