< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp

Print this page
rev 57589 : 8237632: Shenandoah fails some vmTestbase_nsk_jvmti tests with "Forwardee must point to a heap address"


 249 
 250  void ShenandoahHeapIterationRootScanner::roots_do(OopClosure* oops) {
 251    assert(Thread::current()->is_VM_thread(), "Only by VM thread");
 252    // Must use _claim_none to avoid interfering with concurrent CLDG iteration
 253    CLDToOopClosure clds(oops, ClassLoaderData::_claim_none);
 254    MarkingCodeBlobClosure code(oops, !CodeBlobToOopClosure::FixRelocations);
 255    ShenandoahParallelOopsDoThreadClosure tc_cl(oops, &code, NULL);
 256    AlwaysTrueClosure always_true;
 257    ResourceMark rm;
 258 
 259    _serial_roots.oops_do(oops, 0);
 260    _vm_roots.oops_do(oops, 0);
 261    _cld_roots.cld_do(&clds, 0);
 262    _thread_roots.threads_do(&tc_cl, 0);
 263    _code_roots.code_blobs_do(&code, 0);
 264 
 265    _serial_weak_roots.weak_oops_do(oops, 0);
 266    _weak_roots.oops_do<OopClosure>(oops, 0);
 267    _dedup_roots.oops_do(&always_true, oops, 0);
 268  }
 269 
 270  void ShenandoahHeapIterationRootScanner::strong_roots_do(OopClosure* oops) {
 271    assert(Thread::current()->is_VM_thread(), "Only by VM thread");
 272    // Must use _claim_none to avoid interfering with concurrent CLDG iteration
 273    CLDToOopClosure clds(oops, ClassLoaderData::_claim_none);
 274    MarkingCodeBlobClosure code(oops, !CodeBlobToOopClosure::FixRelocations);
 275    ShenandoahParallelOopsDoThreadClosure tc_cl(oops, &code, NULL);
 276    ResourceMark rm;
 277 
 278    _serial_roots.oops_do(oops, 0);
 279    _vm_roots.oops_do(oops, 0);
 280    _cld_roots.always_strong_cld_do(&clds, 0);
 281    _thread_roots.threads_do(&tc_cl, 0);
 282  }


 249 
 250  void ShenandoahHeapIterationRootScanner::roots_do(OopClosure* oops) {
 251    assert(Thread::current()->is_VM_thread(), "Only by VM thread");
 252    // Must use _claim_none to avoid interfering with concurrent CLDG iteration
 253    CLDToOopClosure clds(oops, ClassLoaderData::_claim_none);
 254    MarkingCodeBlobClosure code(oops, !CodeBlobToOopClosure::FixRelocations);
 255    ShenandoahParallelOopsDoThreadClosure tc_cl(oops, &code, NULL);
 256    AlwaysTrueClosure always_true;
 257    ResourceMark rm;
 258 
 259    _serial_roots.oops_do(oops, 0);
 260    _vm_roots.oops_do(oops, 0);
 261    _cld_roots.cld_do(&clds, 0);
 262    _thread_roots.threads_do(&tc_cl, 0);
 263    _code_roots.code_blobs_do(&code, 0);
 264 
 265    _serial_weak_roots.weak_oops_do(oops, 0);
 266    _weak_roots.oops_do<OopClosure>(oops, 0);
 267    _dedup_roots.oops_do(&always_true, oops, 0);
 268  }














< prev index next >