Mercurial > hg > graal-jvmci-8
comparison src/share/vm/memory/defNewGeneration.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 | 7426d8d76305 |
children | ee019285a52c |
comparison
equal
deleted
inserted
replaced
20277:882004b9e7e1 | 20278:2c6ef90f030a |
---|---|
611 FastScanClosure fsc_with_no_gc_barrier(this, false); | 611 FastScanClosure fsc_with_no_gc_barrier(this, false); |
612 FastScanClosure fsc_with_gc_barrier(this, true); | 612 FastScanClosure fsc_with_gc_barrier(this, true); |
613 | 613 |
614 KlassScanClosure klass_scan_closure(&fsc_with_no_gc_barrier, | 614 KlassScanClosure klass_scan_closure(&fsc_with_no_gc_barrier, |
615 gch->rem_set()->klass_rem_set()); | 615 gch->rem_set()->klass_rem_set()); |
616 CLDToKlassAndOopClosure cld_scan_closure(&klass_scan_closure, | |
617 &fsc_with_no_gc_barrier, | |
618 false); | |
616 | 619 |
617 set_promo_failure_scan_stack_closure(&fsc_with_no_gc_barrier); | 620 set_promo_failure_scan_stack_closure(&fsc_with_no_gc_barrier); |
618 FastEvacuateFollowersClosure evacuate_followers(gch, _level, this, | 621 FastEvacuateFollowersClosure evacuate_followers(gch, _level, this, |
619 &fsc_with_no_gc_barrier, | 622 &fsc_with_no_gc_barrier, |
620 &fsc_with_gc_barrier); | 623 &fsc_with_gc_barrier); |
621 | 624 |
622 assert(gch->no_allocs_since_save_marks(0), | 625 assert(gch->no_allocs_since_save_marks(0), |
623 "save marks have not been newly set."); | 626 "save marks have not been newly set."); |
624 | 627 |
625 int so = SharedHeap::SO_AllClasses | SharedHeap::SO_Strings | SharedHeap::SO_ScavengeCodeCache; | 628 gch->gen_process_roots(_level, |
626 | 629 true, // Process younger gens, if any, |
627 gch->gen_process_strong_roots(_level, | 630 // as strong roots. |
628 true, // Process younger gens, if any, | 631 true, // activate StrongRootsScope |
629 // as strong roots. | 632 SharedHeap::SO_ScavengeCodeCache, |
630 true, // activate StrongRootsScope | 633 GenCollectedHeap::StrongAndWeakRoots, |
631 SharedHeap::ScanningOption(so), | 634 &fsc_with_no_gc_barrier, |
632 &fsc_with_no_gc_barrier, | 635 &fsc_with_gc_barrier, |
633 &fsc_with_gc_barrier, | 636 &cld_scan_closure); |
634 &klass_scan_closure); | |
635 | 637 |
636 // "evacuate followers". | 638 // "evacuate followers". |
637 evacuate_followers.do_void(); | 639 evacuate_followers.do_void(); |
638 | 640 |
639 FastKeepAliveClosure keep_alive(this, &scan_weak_ref); | 641 FastKeepAliveClosure keep_alive(this, &scan_weak_ref); |