< prev index next >

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

Print this page

        

*** 89,98 **** --- 89,111 ---- public: virtual void heap_region_do(ShenandoahHeapRegion* r) = 0; virtual bool is_thread_safe() { return false; } }; + class ShenandoahUpdateRefsClosure: public OopClosure { + private: + ShenandoahHeap* _heap; + + template <class T> + inline void do_oop_work(T* p); + + public: + ShenandoahUpdateRefsClosure(); + inline void do_oop(oop* p); + inline void do_oop(narrowOop* p); + }; + #ifdef ASSERT class ShenandoahAssertToSpaceClosure : public OopClosure { private: template <class T> void do_oop_work(T* p);
*** 100,109 **** --- 113,150 ---- void do_oop(narrowOop* p); void do_oop(oop* p); }; #endif + class ShenandoahAlwaysTrueClosure : public BoolObjectClosure { + public: + bool do_object_b(oop p) { return true; } + }; + + class ShenandoahForwardedIsAliveClosure: public BoolObjectClosure { + private: + ShenandoahMarkingContext* const _mark_context; + public: + ShenandoahForwardedIsAliveClosure(); + bool do_object_b(oop obj); + }; + + class ShenandoahIsAliveClosure: public BoolObjectClosure { + private: + ShenandoahMarkingContext* const _mark_context; + public: + ShenandoahIsAliveClosure(); + bool do_object_b(oop obj); + }; + + class ShenandoahIsAliveSelector : public StackObj { + private: + ShenandoahIsAliveClosure _alive_cl; + ShenandoahForwardedIsAliveClosure _fwd_alive_cl; + public: + BoolObjectClosure* is_alive_closure(); + }; // Shenandoah GC is low-pause concurrent GC that uses Brooks forwarding pointers // to encode forwarding data. See BrooksPointer for details on forwarding data encoding. // See ShenandoahControlThread for GC cycle structure. //
*** 155,165 **** // ---------- Heap counters and metrics // private: size_t _initial_size; - size_t _minimum_size; DEFINE_PAD_MINUS_SIZE(0, DEFAULT_CACHE_LINE_SIZE, sizeof(volatile size_t)); volatile size_t _used; volatile size_t _committed; volatile size_t _bytes_allocated_since_gc_start; DEFINE_PAD_MINUS_SIZE(1, DEFAULT_CACHE_LINE_SIZE, 0); --- 196,205 ----
*** 174,184 **** void increase_allocated(size_t bytes); size_t bytes_allocated_since_gc_start(); void reset_bytes_allocated_since_gc_start(); - size_t min_capacity() const; size_t max_capacity() const; size_t initial_capacity() const; size_t capacity() const; size_t used() const; size_t committed() const; --- 214,223 ----
< prev index next >