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