< prev index next >
src/share/vm/gc/shenandoah/shenandoahHeap.cpp
Print this page
rev 13080 : Partial GC: Only evacuating threads push oop to work queue.
*** 794,804 ****
log_develop_trace(gc, compaction)("Calling ParallelEvacuateRegionObjectClosure on "PTR_FORMAT" of size %d\n", p2i((HeapWord*) p), p->size());
assert(_heap->is_marked_complete(p), "expect only marked objects");
if (oopDesc::unsafe_equals(p, ShenandoahBarrierSet::resolve_oop_static_not_null(p))) {
! _heap->evacuate_object(p, _thread);
}
}
};
#ifdef ASSERT
--- 794,805 ----
log_develop_trace(gc, compaction)("Calling ParallelEvacuateRegionObjectClosure on "PTR_FORMAT" of size %d\n", p2i((HeapWord*) p), p->size());
assert(_heap->is_marked_complete(p), "expect only marked objects");
if (oopDesc::unsafe_equals(p, ShenandoahBarrierSet::resolve_oop_static_not_null(p))) {
! bool evac;
! _heap->evacuate_object(p, _thread, evac);
}
}
};
#ifdef ASSERT
*** 1228,1238 ****
if (_heap->in_collection_set(obj)) {
assert(_heap->is_marked_complete(obj), "only evacuate marked objects %d %d",
_heap->is_marked_complete(obj), _heap->is_marked_complete(ShenandoahBarrierSet::resolve_oop_static_not_null(obj)));
oop resolved = ShenandoahBarrierSet::resolve_oop_static_not_null(obj);
if (oopDesc::unsafe_equals(resolved, obj)) {
! resolved = _heap->evacuate_object(obj, _thread);
}
oopDesc::encode_store_heap_oop(p, resolved);
}
}
#ifdef ASSERT
--- 1229,1240 ----
if (_heap->in_collection_set(obj)) {
assert(_heap->is_marked_complete(obj), "only evacuate marked objects %d %d",
_heap->is_marked_complete(obj), _heap->is_marked_complete(ShenandoahBarrierSet::resolve_oop_static_not_null(obj)));
oop resolved = ShenandoahBarrierSet::resolve_oop_static_not_null(obj);
if (oopDesc::unsafe_equals(resolved, obj)) {
! bool evac;
! resolved = _heap->evacuate_object(obj, _thread, evac);
}
oopDesc::encode_store_heap_oop(p, resolved);
}
}
#ifdef ASSERT
< prev index next >