478 ShenandoahRegionIterator _update_refs_iterator;
479
480 private:
481 inline void reset_cancellation_time();
482
483 // GC support
484 // Evacuation
485 virtual void evacuate_collection_set(ShenandoahGeneration* generation, bool concurrent);
486 // Concurrent root processing
487 void prepare_concurrent_roots();
488 void finish_concurrent_roots();
489 // Concurrent class unloading support
490 void do_class_unloading();
491 // Reference updating
492 void prepare_update_heap_references();
493
494 // Retires LABs used for evacuation
495 void concurrent_prepare_for_update_refs();
496
497 // Turn off weak roots flag
498 void concurrent_final_roots();
499
500 virtual void update_heap_references(ShenandoahGeneration* generation, bool concurrent);
501 // Final update region states
502 void update_heap_region_states(bool concurrent);
503 virtual void final_update_refs_update_region_states();
504
505 void rendezvous_threads(const char* name);
506 void recycle_trash();
507 public:
508 // The following two functions rebuild the free set at the end of GC, in preparation for an idle phase.
509 void rebuild_free_set(bool concurrent);
510 void rebuild_free_set_within_phase();
511 void notify_gc_progress();
512 void notify_gc_no_progress();
513 size_t get_gc_no_progress_count() const;
514
515 // The uncommit thread targets soft max heap, notify this thread when that value has changed.
516 void notify_soft_max_changed();
517
518 // An explicit GC request may have freed regions, notify the uncommit thread.
|
478 ShenandoahRegionIterator _update_refs_iterator;
479
480 private:
481 inline void reset_cancellation_time();
482
483 // GC support
484 // Evacuation
485 virtual void evacuate_collection_set(ShenandoahGeneration* generation, bool concurrent);
486 // Concurrent root processing
487 void prepare_concurrent_roots();
488 void finish_concurrent_roots();
489 // Concurrent class unloading support
490 void do_class_unloading();
491 // Reference updating
492 void prepare_update_heap_references();
493
494 // Retires LABs used for evacuation
495 void concurrent_prepare_for_update_refs();
496
497 // Turn off weak roots flag
498 void op_final_roots();
499
500 virtual void update_heap_references(ShenandoahGeneration* generation, bool concurrent);
501 // Final update region states
502 void update_heap_region_states(bool concurrent);
503 virtual void final_update_refs_update_region_states();
504
505 void rendezvous_threads(const char* name);
506 void recycle_trash();
507 public:
508 // The following two functions rebuild the free set at the end of GC, in preparation for an idle phase.
509 void rebuild_free_set(bool concurrent);
510 void rebuild_free_set_within_phase();
511 void notify_gc_progress();
512 void notify_gc_no_progress();
513 size_t get_gc_no_progress_count() const;
514
515 // The uncommit thread targets soft max heap, notify this thread when that value has changed.
516 void notify_soft_max_changed();
517
518 // An explicit GC request may have freed regions, notify the uncommit thread.
|