OpenJDK / amber / amber
changeset 56443:335f474becde
8224970: ShenandoahRootScanner::roots_do assert is too strong
Reviewed-by: zgu
author | shade |
---|---|
date | Wed, 29 May 2019 15:25:21 +0200 |
parents | dd321e3596c0 |
children | 2fc6027f0eed |
files | src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.inline.hpp |
diffstat | 1 files changed, 4 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.inline.hpp Wed May 29 13:58:05 2019 +0100 +++ b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.inline.hpp Wed May 29 15:25:21 2019 +0200 @@ -27,6 +27,7 @@ #include "gc/shenandoah/shenandoahHeuristics.hpp" #include "gc/shenandoah/shenandoahRootProcessor.hpp" #include "gc/shenandoah/shenandoahTimingTracker.hpp" +#include "gc/shenandoah/shenandoahUtils.hpp" #include "memory/resourceArea.hpp" template <typename IsAlive, typename KeepAlive> @@ -90,9 +91,10 @@ template <typename ITR> void ShenandoahRootScanner<ITR>::roots_do(uint worker_id, OopClosure* oops, CLDClosure* clds, CodeBlobClosure* code, ThreadClosure *tc) { - assert(!ShenandoahHeap::heap()->unload_classes() || + assert(!ShenandoahSafepoint::is_at_shenandoah_safepoint() || + !ShenandoahHeap::heap()->unload_classes() || ShenandoahHeap::heap()->heuristics()->can_do_traversal_gc(), - "No class unloading or traversal GC"); + "Expect class unloading or traversal when Shenandoah cycle is running"); ShenandoahParallelOopsDoThreadClosure tc_cl(oops, code, tc); ResourceMark rm;