Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp @ 20278:2c6ef90f030a
8049421: G1 Class Unloading after completing a concurrent mark cycle
Reviewed-by: tschatzl, ehelin, brutisso, coleenp, roland, iveresov
Contributed-by: stefan.karlsson@oracle.com, mikael.gerdin@oracle.com
author | stefank |
---|---|
date | Mon, 07 Jul 2014 10:12:40 +0200 |
parents | 4af19b914f53 |
children | 7848fc12602b |
comparison
equal
deleted
inserted
replaced
20277:882004b9e7e1 | 20278:2c6ef90f030a |
---|---|
98 break; | 98 break; |
99 | 99 |
100 | 100 |
101 case code_cache: | 101 case code_cache: |
102 { | 102 { |
103 CodeBlobToOopClosure each_scavengable_code_blob(&roots_to_old_closure, /*do_marking=*/ true); | 103 MarkingCodeBlobClosure each_scavengable_code_blob(&roots_to_old_closure, CodeBlobToOopClosure::FixRelocations); |
104 CodeCache::scavenge_root_nmethods_do(&each_scavengable_code_blob); | 104 CodeCache::scavenge_root_nmethods_do(&each_scavengable_code_blob); |
105 } | 105 } |
106 break; | 106 break; |
107 | 107 |
108 default: | 108 default: |
121 assert(Universe::heap()->is_gc_active(), "called outside gc"); | 121 assert(Universe::heap()->is_gc_active(), "called outside gc"); |
122 | 122 |
123 PSPromotionManager* pm = PSPromotionManager::gc_thread_promotion_manager(which); | 123 PSPromotionManager* pm = PSPromotionManager::gc_thread_promotion_manager(which); |
124 PSScavengeRootsClosure roots_closure(pm); | 124 PSScavengeRootsClosure roots_closure(pm); |
125 CLDClosure* roots_from_clds = NULL; // Not needed. All CLDs are already visited. | 125 CLDClosure* roots_from_clds = NULL; // Not needed. All CLDs are already visited. |
126 CodeBlobToOopClosure roots_in_blobs(&roots_closure, /*do_marking=*/ true); | 126 MarkingCodeBlobClosure roots_in_blobs(&roots_closure, CodeBlobToOopClosure::FixRelocations); |
127 | 127 |
128 if (_java_thread != NULL) | 128 if (_java_thread != NULL) |
129 _java_thread->oops_do(&roots_closure, roots_from_clds, &roots_in_blobs); | 129 _java_thread->oops_do(&roots_closure, roots_from_clds, &roots_in_blobs); |
130 | 130 |
131 if (_vm_thread != NULL) | 131 if (_vm_thread != NULL) |