Merged revisions 70897 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r70897 | benjamin.peterson | 2009-03-31 16:34:42 -0500 (Tue, 31 Mar 2009) | 1 line

  fix Thread.ident when it is the main thread or a dummy thread #5632
........
diff --git a/Lib/threading.py b/Lib/threading.py
index a776c66..c1791d7 100644
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -500,9 +500,12 @@
                 return
             raise
 
+    def _set_ident(self):
+        self.__ident = _get_ident()
+
     def __bootstrap_inner(self):
         try:
-            self.__ident = _get_ident()
+            self._set_ident()
             self.__started.set()
             _active_limbo_lock.acquire()
             _active[self.__ident] = self
@@ -734,6 +737,7 @@
     def __init__(self):
         Thread.__init__(self, name="MainThread")
         self._Thread__started.set()
+        self._set_ident()
         _active_limbo_lock.acquire()
         _active[_get_ident()] = self
         _active_limbo_lock.release()
@@ -780,6 +784,7 @@
         del self._Thread__block
 
         self._Thread__started.set()
+        self._set_ident()
         _active_limbo_lock.acquire()
         _active[_get_ident()] = self
         _active_limbo_lock.release()