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