< 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 >