< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.inline.hpp

Print this page
rev 55321 : 8225572: Shenandoah: Move JNIHandles root out of serial roots
rev 55322 : 8225550: Shenandoah: Prevent SH::object_iterate() call's side-effects

*** 124,133 **** --- 124,146 ---- _thread_roots.threads_do(&tc_cl, 0); _code_roots.code_blobs_do(&code, 0); } template <typename ITR> + void ShenandoahRootScanner<ITR>::strong_roots_do_unchecked(OopClosure* oops) { + CLDToOopClosure clds(oops, ClassLoaderData::_claim_strong); + MarkingCodeBlobClosure code(oops, !CodeBlobToOopClosure::FixRelocations); + ShenandoahParallelOopsDoThreadClosure tc_cl(oops, &code, NULL); + ResourceMark rm; + + _serial_roots.oops_do(oops, 0); + _jni_roots.oops_do(oops, 0); + _cld_roots.clds_do(&clds, NULL, 0); + _thread_roots.threads_do(&tc_cl, 0); + } + + template <typename ITR> void ShenandoahRootScanner<ITR>::strong_roots_do(uint worker_id, OopClosure* oops, CLDClosure* clds, CodeBlobClosure* code, ThreadClosure* tc) { assert(ShenandoahHeap::heap()->unload_classes(), "Should be used during class unloading"); ShenandoahParallelOopsDoThreadClosure tc_cl(oops, code, tc); ResourceMark rm;
< prev index next >