diff src/share/vm/memory/genCollectedHeap.cpp @ 8784:79af1312fc2c

8005602: NPG: classunloading does not happen while CMS GC with -XX:+CMSClassUnloadingEnabled is used Summary: Call purge() on CLDG after sweep(), reorder purge() call in GenCollectedHeap Reviewed-by: jmasa, stefank
author mgerdin
date Thu, 14 Mar 2013 10:54:44 +0100
parents db9981fd3124
children 68fe50d4f1d5
line wrap: on
line diff
--- a/src/share/vm/memory/genCollectedHeap.cpp	Tue Mar 12 11:00:49 2013 -0700
+++ b/src/share/vm/memory/genCollectedHeap.cpp	Thu Mar 14 10:54:44 2013 +0100
@@ -554,6 +554,8 @@
     }
 
     if (complete) {
+      // Delete metaspaces for unloaded class loaders and clean up loader_data graph
+      ClassLoaderDataGraph::purge();
       // Resize the metaspace capacity after full collections
       MetaspaceGC::compute_new_size();
       update_full_collections_completed();
@@ -564,11 +566,6 @@
 
     gc_epilogue(complete);
 
-    // Delete metaspaces for unloaded class loaders and clean up loader_data graph
-    if (complete) {
-      ClassLoaderDataGraph::purge();
-    }
-
     if (must_restore_marks_for_biased_locking) {
       BiasedLocking::restore_marks();
     }