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