< prev index next > src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.hpp
Print this page
class ShenandoahConcurrentGC : public ShenandoahGC {
friend class VM_ShenandoahInitMark;
friend class VM_ShenandoahFinalMarkStartEvac;
friend class VM_ShenandoahInitUpdateRefs;
friend class VM_ShenandoahFinalUpdateRefs;
! friend class VM_ShenandoahFinalVerify;
protected:
ShenandoahConcurrentMark _mark;
private:
class ShenandoahConcurrentGC : public ShenandoahGC {
friend class VM_ShenandoahInitMark;
friend class VM_ShenandoahFinalMarkStartEvac;
friend class VM_ShenandoahInitUpdateRefs;
friend class VM_ShenandoahFinalUpdateRefs;
! friend class VM_ShenandoahFinalRoots;
protected:
ShenandoahConcurrentMark _mark;
private:
// call the entry method below
void vmop_entry_init_mark();
void vmop_entry_final_mark();
void vmop_entry_init_update_refs();
void vmop_entry_final_update_refs();
! void vmop_entry_final_verify();
// Entry methods to normally STW GC operations. These set up logging, monitoring
// and workers for next VM operation
void entry_init_mark();
void entry_final_mark();
void entry_init_update_refs();
void entry_final_update_refs();
! void entry_final_verify();
// Entry methods to normally concurrent GC operations. These set up logging, monitoring
// for concurrent operation.
void entry_reset();
void entry_mark_roots();
// call the entry method below
void vmop_entry_init_mark();
void vmop_entry_final_mark();
void vmop_entry_init_update_refs();
void vmop_entry_final_update_refs();
! void vmop_entry_final_roots();
// Entry methods to normally STW GC operations. These set up logging, monitoring
// and workers for next VM operation
void entry_init_mark();
void entry_final_mark();
void entry_init_update_refs();
void entry_final_update_refs();
! void entry_final_roots();
// Entry methods to normally concurrent GC operations. These set up logging, monitoring
// for concurrent operation.
void entry_reset();
void entry_mark_roots();
void entry_update_card_table();
void entry_concurrent_update_refs_prepare(ShenandoahHeap* heap);
void entry_update_refs();
void entry_cleanup_complete();
- // This is the last phase of a cycle which performs no evacuations
- bool entry_final_roots();
-
// Called when the collection set is empty, but the generational mode has regions to promote in place
void entry_promote_in_place() const;
// Actual work for the phases
void op_reset();
void op_init_update_refs();
void op_update_refs();
void op_update_thread_roots();
void op_final_update_refs();
- void op_verify_final();
void op_cleanup_complete();
void op_reset_after_collect();
// Check GC cancellation and abort concurrent GC
bool check_cancellation_and_abort(ShenandoahDegenPoint point);
// Messages for GC trace events, they have to be immortal for
// passing around the logging/tracing systems
const char* init_mark_event_message() const;
const char* final_mark_event_message() const;
! const char* verify_final_event_message() const;
- const char* conc_final_roots_event_message() const;
const char* conc_mark_event_message() const;
const char* conc_reset_event_message() const;
const char* conc_reset_after_collect_event_message() const;
const char* conc_weak_refs_event_message() const;
const char* conc_weak_roots_event_message() const;
// Messages for GC trace events, they have to be immortal for
// passing around the logging/tracing systems
const char* init_mark_event_message() const;
const char* final_mark_event_message() const;
! const char* final_roots_event_message() const;
const char* conc_mark_event_message() const;
const char* conc_reset_event_message() const;
const char* conc_reset_after_collect_event_message() const;
const char* conc_weak_refs_event_message() const;
const char* conc_weak_roots_event_message() const;
< prev index next >