< prev index next >

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

Print this page

        

@@ -89,10 +89,23 @@
 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,10 +113,38 @@
   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,11 +196,10 @@
 
 // ---------- 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);

@@ -174,11 +214,10 @@
   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;
< prev index next >