< prev index next >

src/java.base/share/classes/java/lang/Thread.java

Print this page

        

@@ -34,10 +34,12 @@
 import java.util.Map;
 import java.util.HashMap;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.locks.LockSupport;
+
+import jdk.internal.misc.JdkThreadLocal;
 import sun.nio.ch.Interruptible;
 import jdk.internal.reflect.CallerSensitive;
 import jdk.internal.reflect.Reflection;
 import sun.security.util.SecurityConstants;
 import jdk.internal.HotSpotIntrinsicCandidate;

@@ -836,10 +838,11 @@
     /**
      * This method is called by the system to give a Thread
      * a chance to clean up before it actually exits.
      */
     private void exit() {
+        JdkThreadLocal.threadTerminated(JdkThreadLocal.REGISTRY.getIfPresent());
         if (group != null) {
             group.threadTerminated(this);
             group = null;
         }
         /* Aggressively null out all reference fields: see bug 4006245 */
< prev index next >