< prev index next >

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

Print this page
rev 60600 : 8251910: Shenandoah: assert(external_guard || result != __null) failed: Invalid JNI handle

*** 422,431 **** --- 422,437 ---- heap->vmop_entry_final_updaterefs(); // Update references freed up collection set, kick the cleanup to reclaim the space. heap->entry_cleanup_complete(); + } else { + // Concurrent weak/strong root flags are unset concurrently. We depend on updateref GC safepoints + // to ensure the changes are visible to all mutators before gc cycle is completed. + // In case of no evacuation, updateref GC safepoints are skipped. Therefore, we will need + // to perform thread handshake to ensure their consistences. + heap->entry_rendezvous_roots(); } // Cycle is complete heap->heuristics()->record_success_concurrent(); heap->shenandoah_policy()->record_success_concurrent();
< prev index next >