< prev index next >

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

Print this page
rev 13080 : Partial GC: Only evacuating threads push oop to work queue.

@@ -274,13 +274,15 @@
   BrooksPointer::initialize(oop(copy));
 
   log_develop_trace(gc, compaction)("copy object from "PTR_FORMAT" to: "PTR_FORMAT, p2i((HeapWord*) p), p2i(copy));
 }
 
-inline oop ShenandoahHeap::evacuate_object(oop p, Thread* thread) {
+inline oop ShenandoahHeap::evacuate_object(oop p, Thread* thread, bool& evacuated) {
   size_t required;
 
+  evacuated = false;
+
 #ifdef ASSERT
   ShenandoahHeapRegion* hr = NULL;
   if (ShenandoahVerifyReadsToFromSpace) {
     hr = heap_region_containing(p);
     {

@@ -339,10 +341,11 @@
   oop copy_val = oop(copy);
   oop result = BrooksPointer::try_update_forwardee(p, copy_val);
 
   oop return_val;
   if (oopDesc::unsafe_equals(result, p)) {
+    evacuated = true;
     return_val = copy_val;
 
     log_develop_trace(gc, compaction)("Copy of "PTR_FORMAT" to "PTR_FORMAT" succeeded \n",
                                       p2i((HeapWord*) p), p2i(copy));
 
< prev index next >