< prev index next >

src/share/vm/gc/shared/referenceProcessor.cpp

Print this page
rev 10739 : 8153745: Avoid spawning G1ParPreserveCMReferentsTask when there is no work to be done
Reviewed-by:

@@ -1088,10 +1088,19 @@
   assert(obj->is_oop(), "Discovered a bad reference");
   verify_referent(obj);
   return true;
 }
 
+bool ReferenceProcessor::has_discovered_references() {
+  for (uint i = 0; i < _max_num_q * number_of_subclasses_of_ref(); i++) {
+    if (!_discovered_refs[i].is_empty()) {
+      return true;
+    }
+  }
+  return false;
+}
+
 // Preclean the discovered references by removing those
 // whose referents are alive, and by marking from those that
 // are not active. These lists can be handled here
 // in any order and, indeed, concurrently.
 void ReferenceProcessor::preclean_discovered_references(
< prev index next >