Mercurial > hg > graal-jvmci-8
comparison src/share/vm/memory/genMarkSweep.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 | 64ac9c55d666 |
children | 7848fc12602b 38d6febe66af |
comparison
equal
deleted
inserted
replaced
20277:882004b9e7e1 | 20278:2c6ef90f030a |
---|---|
205 follow_root_closure.set_orig_generation(gch->get_gen(level)); | 205 follow_root_closure.set_orig_generation(gch->get_gen(level)); |
206 | 206 |
207 // Need new claim bits before marking starts. | 207 // Need new claim bits before marking starts. |
208 ClassLoaderDataGraph::clear_claimed_marks(); | 208 ClassLoaderDataGraph::clear_claimed_marks(); |
209 | 209 |
210 gch->gen_process_strong_roots(level, | 210 gch->gen_process_roots(level, |
211 false, // Younger gens are not roots. | 211 false, // Younger gens are not roots. |
212 true, // activate StrongRootsScope | 212 true, // activate StrongRootsScope |
213 SharedHeap::SO_SystemClasses, | 213 SharedHeap::SO_None, |
214 &follow_root_closure, | 214 GenCollectedHeap::StrongRootsOnly, |
215 &follow_root_closure, | 215 &follow_root_closure, |
216 &follow_klass_closure); | 216 &follow_root_closure, |
217 &follow_cld_closure); | |
217 | 218 |
218 // Process reference objects found during marking | 219 // Process reference objects found during marking |
219 { | 220 { |
220 ref_processor()->setup_policy(clear_all_softrefs); | 221 ref_processor()->setup_policy(clear_all_softrefs); |
221 const ReferenceProcessorStats& stats = | 222 const ReferenceProcessorStats& stats = |
289 // use OopsInGenClosure constructor which takes a generation, | 290 // use OopsInGenClosure constructor which takes a generation, |
290 // as the Universe has not been created when the static constructors | 291 // as the Universe has not been created when the static constructors |
291 // are run. | 292 // are run. |
292 adjust_pointer_closure.set_orig_generation(gch->get_gen(level)); | 293 adjust_pointer_closure.set_orig_generation(gch->get_gen(level)); |
293 | 294 |
294 gch->gen_process_strong_roots(level, | 295 gch->gen_process_roots(level, |
295 false, // Younger gens are not roots. | 296 false, // Younger gens are not roots. |
296 true, // activate StrongRootsScope | 297 true, // activate StrongRootsScope |
297 SharedHeap::SO_AllClasses | SharedHeap::SO_Strings | SharedHeap::SO_AllCodeCache, | 298 SharedHeap::SO_AllCodeCache, |
298 &adjust_pointer_closure, | 299 GenCollectedHeap::StrongAndWeakRoots, |
299 &adjust_pointer_closure, | 300 &adjust_pointer_closure, |
300 &adjust_klass_closure); | 301 &adjust_pointer_closure, |
302 &adjust_cld_closure); | |
301 | 303 |
302 gch->gen_process_weak_roots(&adjust_pointer_closure); | 304 gch->gen_process_weak_roots(&adjust_pointer_closure); |
303 | 305 |
304 adjust_marks(); | 306 adjust_marks(); |
305 GenAdjustPointersClosure blk; | 307 GenAdjustPointersClosure blk; |