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