< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp

Print this page

        

*** 30,39 **** --- 30,40 ---- #include "gc/shenandoah/shenandoahAsserts.hpp" #include "gc/shenandoah/shenandoahAllocRequest.hpp" #include "gc/shenandoah/shenandoahLock.hpp" #include "gc/shenandoah/shenandoahEvacOOMHandler.hpp" #include "gc/shenandoah/shenandoahSharedVariables.hpp" + #include "gc/shenandoah/shenandoahUnload.hpp" #include "services/memoryManager.hpp" class ConcurrentGCTimer; class ReferenceProcessor; class ShenandoahAllocTracker;
*** 269,278 **** --- 270,280 ---- ShenandoahSharedBitmap _gc_state; ShenandoahSharedFlag _degenerated_gc_in_progress; ShenandoahSharedFlag _full_gc_in_progress; ShenandoahSharedFlag _full_gc_move_in_progress; ShenandoahSharedFlag _progress_last_gc; + ShenandoahSharedFlag _concurrent_root_in_progress; void set_gc_state_all_threads(char state); void set_gc_state_mask(uint mask, bool value); public:
*** 285,294 **** --- 287,297 ---- void set_degenerated_gc_in_progress(bool in_progress); void set_full_gc_in_progress(bool in_progress); void set_full_gc_move_in_progress(bool in_progress); void set_concurrent_traversal_in_progress(bool in_progress); void set_has_forwarded_objects(bool cond); + void set_concurrent_root_in_progress(bool cond); inline bool is_stable() const; inline bool is_idle() const; inline bool is_concurrent_mark_in_progress() const; inline bool is_update_refs_in_progress() const;
*** 297,306 **** --- 300,311 ---- inline bool is_full_gc_in_progress() const; inline bool is_full_gc_move_in_progress() const; inline bool is_concurrent_traversal_in_progress() const; inline bool has_forwarded_objects() const; inline bool is_gc_in_progress_mask(uint mask) const; + inline bool is_stw_gc_in_progress() const; + inline bool is_concurrent_root_in_progress() const; // ---------- GC cancellation and degeneration machinery // // Cancelled GC flag is used to notify concurrent phases that they should terminate. //
*** 509,518 **** --- 514,524 ---- // ---------- Class Unloading // private: ShenandoahSharedFlag _unload_classes; + ShenandoahUnload _unloader; public: void set_unload_classes(bool uc); bool unload_classes() const;
*** 521,530 **** --- 527,542 ---- private: void stw_unload_classes(bool full_gc); void stw_process_weak_roots(bool full_gc); + // Prepare concurrent root processing + void prepare_concurrent_roots(); + // Prepare and finish concurrent unloading + void prepare_concurrent_unloading(); + void finish_concurrent_unloading(); + // ---------- Generic interface hooks // Minor things that super-interface expects us to implement to play nice with // the rest of runtime. Some of the things here are not required to be implemented, // and can be stubbed out. //
*** 561,571 **** // ---------- Code roots handling hooks // public: void register_nmethod(nmethod* nm); void unregister_nmethod(nmethod* nm); ! void flush_nmethod(nmethod* nm) {} void verify_nmethod(nmethod* nm) {} // ---------- Pinning hooks // public: --- 573,583 ---- // ---------- Code roots handling hooks // public: void register_nmethod(nmethod* nm); void unregister_nmethod(nmethod* nm); ! void flush_nmethod(nmethod* nm); void verify_nmethod(nmethod* nm) {} // ---------- Pinning hooks // public:
< prev index next >