comparison src/share/vm/gc_implementation/parNew/parNewGeneration.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 611
612 par_scan_state.set_young_old_boundary(_young_old_boundary); 612 par_scan_state.set_young_old_boundary(_young_old_boundary);
613 613
614 KlassScanClosure klass_scan_closure(&par_scan_state.to_space_root_closure(), 614 KlassScanClosure klass_scan_closure(&par_scan_state.to_space_root_closure(),
615 gch->rem_set()->klass_rem_set()); 615 gch->rem_set()->klass_rem_set());
616 616 CLDToKlassAndOopClosure cld_scan_closure(&klass_scan_closure,
617 int so = SharedHeap::SO_AllClasses | SharedHeap::SO_Strings | SharedHeap::SO_ScavengeCodeCache; 617 &par_scan_state.to_space_root_closure(),
618 false);
618 619
619 par_scan_state.start_strong_roots(); 620 par_scan_state.start_strong_roots();
620 gch->gen_process_strong_roots(_gen->level(), 621 gch->gen_process_roots(_gen->level(),
621 true, // Process younger gens, if any, 622 true, // Process younger gens, if any,
622 // as strong roots. 623 // as strong roots.
623 false, // no scope; this is parallel code 624 false, // no scope; this is parallel code
624 SharedHeap::ScanningOption(so), 625 SharedHeap::SO_ScavengeCodeCache,
625 &par_scan_state.to_space_root_closure(), 626 GenCollectedHeap::StrongAndWeakRoots,
626 &par_scan_state.older_gen_closure(), 627 &par_scan_state.to_space_root_closure(),
627 &klass_scan_closure); 628 &par_scan_state.older_gen_closure(),
629 &cld_scan_closure);
630
628 par_scan_state.end_strong_roots(); 631 par_scan_state.end_strong_roots();
629 632
630 // "evacuate followers". 633 // "evacuate followers".
631 par_scan_state.evacuate_followers_closure().do_void(); 634 par_scan_state.evacuate_followers_closure().do_void();
632 } 635 }