< prev index next >

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

Print this page

        

*** 55,64 **** --- 55,65 ---- class ShenandoahCollectionSet; class ShenandoahFreeSet; class ShenandoahConcurrentMark; class ShenandoahMarkCompact; class ShenandoahMonitoringSupport; + class ShenandoahObjectMarker; class ShenandoahPacer; class ShenandoahTraversalGC; class ShenandoahVerifier; class ShenandoahWorkGang; class VMStructs;
*** 117,126 **** --- 118,128 ---- class ShenandoahHeap : public CollectedHeap { friend class ShenandoahAsserts; friend class VMStructs; friend class ShenandoahGCSession; friend class ShenandoahGCStateResetter; + friend class ShenandoahObjectMarker; // ---------- Locks that guard important data structures in Heap // private: ShenandoahHeapLock _lock;
*** 559,568 **** --- 561,571 ---- // Used for parsing heap during error printing HeapWord* block_start(const void* addr) const; bool block_is_obj(const HeapWord* addr) const; bool print_location(outputStream* st, void* addr) const; + ObjectMarker* object_marker(); // Used for native heap walkers: heap dumpers, mostly void object_iterate(ObjectClosure* cl); // Keep alive an object that was loaded with AS_NO_KEEPALIVE. void keep_alive(oop obj);
*** 652,661 **** --- 655,668 ---- // there is a tradeoff between static/dynamic footprint that translates // into cache pressure (which is already high during marking), and // too many atomic updates. size_t/jint is too large, jbyte is too small. jushort** _liveness_cache; + private: + bool commit_aux_bitmap(); + void uncommit_aux_bit_map(); + public: inline ShenandoahMarkingContext* complete_marking_context() const; inline ShenandoahMarkingContext* marking_context() const; inline void mark_complete_marking_context(); inline void mark_incomplete_marking_context();
< prev index next >