[Python-Dev] Free threading

Aahz Maruch aahz@rahul.net
Wed, 8 Aug 2001 23:13:27 -0700 (PDT)


Guido van Rossum wrote:
> Aahz:
>>
>> We need thread-local storage, anyway.  When I'm a little farther into my
>> work on Decimal, I'm going to take a hard look at this because context
>> needs to be global on a per-thread basis...
> 
> In the C API, use PyThreadState_GetDict(): it returns a per-thread
> dictionary.  The convention is that you pick a key unique to your
> extension module (e.g. your full extension module name) and then store
> your per-thread data under this key.
> 
> In Python, you can store instance variables on the current thread
> object -- use threading.currentThread() to access it.

It's not quite that simple, particularly if one is writing Python code
that permits use of the thread module instead of requiring threading.

But what I was really referring to was the annoyance of having every
method call pull in the thread-local information.  Seems to me that
there ought to be some way of making it happen magically.

Another issue is the problem of inheriting thread-local values when
creating a new thread.  That almost certainly requires a callback inside
the thread creation machinery.

Because I haven't thought much about this, there are probably other
issues I don't know about....
-- 
                      --- Aahz (@pobox.com)

Hugs and backrubs -- I break Rule 6       <*>       http://www.rahul.net/aahz/
Androgynous poly kinky vanilla queer het Pythonista

I don't really mind a person having the last whine, but I do mind someone 
else having the last self-righteous whine.