Christian Walther <cwalt...@users.sourceforge.net> added the comment:
I have the impression we're tracking two completely unrelated problems in this tracker item. As to "needs patch" regarding my problem: Here's the solution I proposed in my original post in patch form - I'm just not sure if it is correct. I don't recommend applying this until someone who is familiar with the workings of the threading module has confirmed that removing self from _active is the right thing to do (and that what I'm doing is the accepted pythonic way of removing a dictionary entry by value). Index: Lib/threading.py =================================================================== --- Lib/threading.py (revision 77598) +++ Lib/threading.py (working copy) @@ -611,7 +611,11 @@ try: with _active_limbo_lock: - del _active[_get_ident()] + for k, v in _active.iteritems(): + if v is self: break + else: + assert False, "thread instance not found in _active" + del _active[k] # There must not be any python code between the previous line # and after the lock is released. Otherwise a tracing function # could try to acquire the lock again in the same thread, (in ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue1596321> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com