[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