Message16388
Logged In: YES
user_id=357491
Well, I'm stumped. I checked the diff from when 2.2 was initially
released until now and the only change that seems to be related
to any of this is that what is returned by currentThread is not
saved in a variable. But since the error is the calling of
currentThread itself and not saving the return value I don't see
how that would affect anything.
I also went through offlineimap but I didn't see anything there
that seemed to be setting currentThread to None. Although
since several files do ``import *`` so there still is a possibility of
overwriting currentThread locally.
So, for my owning learning and to help solve this, I have written
a tracing function that writes to stderr using the logging package
when it detects that either currentThread or
threading.currentThread has been set to None, locally or globally
(I assume the code is not injecting into builtins so I didn't bother
checking there). The file is named tracer.py and I have attached
it to this bug report. If you can execute
``sys.settrace(tracer.trace_currentThread)`` before offlinemap
starts executing and immediately within each thread (it has to be
called in *every* thread since tracing functions are no inherited
from the main thread) it should print out a message when
currentThread becomes None. If you *really* want to make this
robust you can also have it check sys.modules['threading'] every
time as well, but I figure there is not going to be much renaming
and masking of currentThread. |
|
Date |
User |
Action |
Args |
2007-08-23 14:13:54 | admin | link | issue754449 messages |
2007-08-23 14:13:54 | admin | create | |
|