src/share/vm/gc_implementation/parNew/parNewGeneration.cpp

Print this page
rev 5891 : [mq]: hideDoCodeRoots


 604 
 605   Generation* old_gen = gch->next_gen(_gen);
 606 
 607   ParScanThreadState& par_scan_state = _state_set->thread_state(worker_id);
 608   assert(_state_set->is_valid(worker_id), "Should not have been called");
 609 
 610   par_scan_state.set_young_old_boundary(_young_old_boundary);
 611 
 612   KlassScanClosure klass_scan_closure(&par_scan_state.to_space_root_closure(),
 613                                       gch->rem_set()->klass_rem_set());
 614 
 615   int so = SharedHeap::SO_AllClasses | SharedHeap::SO_Strings | SharedHeap::SO_ScavengeCodeCache;
 616 
 617   par_scan_state.start_strong_roots();
 618   gch->gen_process_strong_roots(_gen->level(),
 619                                 true,  // Process younger gens, if any,
 620                                        // as strong roots.
 621                                 false, // no scope; this is parallel code
 622                                 SharedHeap::ScanningOption(so),
 623                                 &par_scan_state.to_space_root_closure(),
 624                                 true,   // walk *all* scavengable nmethods
 625                                 &par_scan_state.older_gen_closure(),
 626                                 &klass_scan_closure);
 627   par_scan_state.end_strong_roots();
 628 
 629   // "evacuate followers".
 630   par_scan_state.evacuate_followers_closure().do_void();
 631 }
 632 
 633 #ifdef _MSC_VER
 634 #pragma warning( push )
 635 #pragma warning( disable:4355 ) // 'this' : used in base member initializer list
 636 #endif
 637 ParNewGeneration::
 638 ParNewGeneration(ReservedSpace rs, size_t initial_byte_size, int level)
 639   : DefNewGeneration(rs, initial_byte_size, level, "PCopy"),
 640   _overflow_list(NULL),
 641   _is_alive_closure(this),
 642   _plab_stats(YoungPLABSize, PLABWeight)
 643 {
 644   NOT_PRODUCT(_overflow_counter = ParGCWorkQueueOverflowInterval;)




 604 
 605   Generation* old_gen = gch->next_gen(_gen);
 606 
 607   ParScanThreadState& par_scan_state = _state_set->thread_state(worker_id);
 608   assert(_state_set->is_valid(worker_id), "Should not have been called");
 609 
 610   par_scan_state.set_young_old_boundary(_young_old_boundary);
 611 
 612   KlassScanClosure klass_scan_closure(&par_scan_state.to_space_root_closure(),
 613                                       gch->rem_set()->klass_rem_set());
 614 
 615   int so = SharedHeap::SO_AllClasses | SharedHeap::SO_Strings | SharedHeap::SO_ScavengeCodeCache;
 616 
 617   par_scan_state.start_strong_roots();
 618   gch->gen_process_strong_roots(_gen->level(),
 619                                 true,  // Process younger gens, if any,
 620                                        // as strong roots.
 621                                 false, // no scope; this is parallel code
 622                                 SharedHeap::ScanningOption(so),
 623                                 &par_scan_state.to_space_root_closure(),

 624                                 &par_scan_state.older_gen_closure(),
 625                                 &klass_scan_closure);
 626   par_scan_state.end_strong_roots();
 627 
 628   // "evacuate followers".
 629   par_scan_state.evacuate_followers_closure().do_void();
 630 }
 631 
 632 #ifdef _MSC_VER
 633 #pragma warning( push )
 634 #pragma warning( disable:4355 ) // 'this' : used in base member initializer list
 635 #endif
 636 ParNewGeneration::
 637 ParNewGeneration(ReservedSpace rs, size_t initial_byte_size, int level)
 638   : DefNewGeneration(rs, initial_byte_size, level, "PCopy"),
 639   _overflow_list(NULL),
 640   _is_alive_closure(this),
 641   _plab_stats(YoungPLABSize, PLABWeight)
 642 {
 643   NOT_PRODUCT(_overflow_counter = ParGCWorkQueueOverflowInterval;)