Issue #874900: fix behaviour of threading module after a fork.

Reviewed by Gregory P. Smith.
diff --git a/Lib/threading.py b/Lib/threading.py
index 1d59cb0..b541d77 100644
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -835,16 +835,19 @@
     new_active = {}
     current = current_thread()
     with _active_limbo_lock:
-        for ident, thread in _active.items():
+        for thread in _active.values():
             if thread is current:
-                # There is only one active thread.
+                # There is only one active thread. We reset the ident to
+                # its new value since it can have changed.
+                ident = _get_ident()
+                thread._ident = ident
                 new_active[ident] = thread
             else:
                 # All the others are already stopped.
                 # We don't call _Thread__stop() because it tries to acquire
                 # thread._Thread__block which could also have been held while
                 # we forked.
-                thread._Thread__stopped = True
+                thread._stopped = True
 
         _limbo.clear()
         _active.clear()