< prev index next >

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

Print this page
rev 13055 : Implement barriers for maintaining connection matrix.

@@ -28,10 +28,11 @@
 #include "gc/shenandoah/shenandoahWorkGroup.hpp"
 
 class ConcurrentGCTimer;
 
 class ShenandoahCollectorPolicy;
+class ShenandoahConnectionMatrix;
 class ShenandoahHeapRegion;
 class ShenandoahHeapRegionClosure;
 class ShenandoahHeapRegionSet;
 class ShenandoahCollectionSet;
 class ShenandoahFreeSet;

@@ -138,10 +139,11 @@
   // Sortable array of regions
   ShenandoahHeapRegionSet* _ordered_regions;
   ShenandoahHeapRegionSet* _sorted_regions;
   ShenandoahFreeSet* _free_regions;
   ShenandoahCollectionSet* _collection_set;
+
   ShenandoahHeapRegion* _currentAllocationRegion;
   ShenandoahConcurrentMark* _scm;
 
 
 

@@ -201,10 +203,12 @@
   ConcurrentGCTimer* _gc_timer;
 
   // See allocate_memory()
   volatile jbyte _heap_lock;
 
+  ShenandoahConnectionMatrix* _connection_matrix;
+
 #ifdef ASSERT
   volatile Thread* _heap_lock_owner;
 #endif
 
 public:

@@ -293,10 +297,11 @@
   static address concurrent_mark_in_progress_addr();
 
   void prepare_for_concurrent_evacuation();
   void evacuate_and_update_roots();
 
+  void verify_matrix();
 private:
   void set_evacuation_in_progress(bool in_progress);
 public:
   inline bool is_evacuation_in_progress();
   void set_evacuation_in_progress_concurrently(bool in_progress);

@@ -338,10 +343,12 @@
   ShenandoahHeapRegionSet* regions() { return _ordered_regions;}
   ShenandoahFreeSet* free_regions();
   void clear_free_regions();
   void add_free_region(ShenandoahHeapRegion* r);
 
+  ShenandoahConnectionMatrix* connection_matrix();
+
   void increase_used(size_t bytes);
   void decrease_used(size_t bytes);
 
   void set_used(size_t bytes);
   size_t calculateUsed();
< prev index next >