< prev index next >

src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegionCounters.cpp

Print this page
rev 9705 : [backport] Implement early update references phase.

@@ -59,11 +59,10 @@
       const char* ns = PerfDataManager::ns_to_string(SUN_GC);
       const char* fullname = PerfDataManager::counter_name(ns, data_name);
       assert(!PerfDataManager::exists(fullname), "must not exist");
       _regions_data[i] = PerfDataManager::create_long_variable(SUN_GC, data_name,
                                                                PerfData::U_None, CHECK);
-
     }
   }
 }
 
 ShenandoahHeapRegionCounters::~ShenandoahHeapRegionCounters() {

@@ -77,12 +76,13 @@
     if (current - last > ShenandoahRegionSamplingRate &&
             Atomic::cmpxchg(current, &_last_sample_millis, last) == last) {
 
       ShenandoahHeap* heap = ShenandoahHeap::heap();
       jlong status = 0;
-      if (heap->concurrent_mark_in_progress()) status |= 1;
-      if (heap->is_evacuation_in_progress()) status |= 2;
+      if (heap->concurrent_mark_in_progress()) status |= 1 << 0;
+      if (heap->is_evacuation_in_progress())   status |= 1 << 1;
+      if (heap->is_update_refs_in_progress())  status |= 1 << 2;
       _status->set_value(status);
 
       _timestamp->set_value(os::elapsed_counter());
 
       size_t num_regions = heap->num_regions();
< prev index next >