src/hotspot/share/classfile/systemDictionary.cpp
changeset 51415 0aa5378d4f09
parent 51375 b812a85b3aa4
child 51444 3e5d28e6de32
--- a/src/hotspot/share/classfile/systemDictionary.cpp	Wed Aug 15 15:50:23 2018 -0400
+++ b/src/hotspot/share/classfile/systemDictionary.cpp	Wed Aug 15 16:01:48 2018 -0400
@@ -1858,10 +1858,19 @@
     }
   }
 
+  // TODO: just return if !unloading_occurred.
   if (unloading_occurred) {
-    GCTraceTime(Debug, gc, phases) t("Dictionary", gc_timer);
-    constraints()->purge_loader_constraints();
-    resolution_errors()->purge_resolution_errors();
+    {
+      GCTraceTime(Debug, gc, phases) t("SymbolTable", gc_timer);
+      // Check if there's work to do in the SymbolTable
+      SymbolTable::do_check_concurrent_work();
+    }
+
+    {
+      GCTraceTime(Debug, gc, phases) t("Dictionary", gc_timer);
+      constraints()->purge_loader_constraints();
+      resolution_errors()->purge_resolution_errors();
+    }
   }
 
   {