RFR(XS) Early return results imbalanced time partition
Aleksey Shipilev
shade at redhat.com
Wed May 31 19:33:43 UTC 2017
Ah! So while loop is meant to be the scope which you can break from. Using goto
would be less cryptic, no?
diff -r de1d145d1fc1 src/share/vm/gc/shenandoah/shenandoahPartialGC.cpp
--- a/src/share/vm/gc/shenandoah/shenandoahPartialGC.cpp Wed May 31 21:13:12
2017 +0200
+++ b/src/share/vm/gc/shenandoah/shenandoahPartialGC.cpp Wed May 31 21:33:19
2017 +0200
@@ -296,8 +296,7 @@
if (!has_work) {
reset();
- _heap->gc_timer()->register_gc_end();
- return;
+ goto end;
}
policy->record_phase_start(ShenandoahCollectorPolicy::partial_gc_work);
@@ -369,6 +368,7 @@
}
}
+ end:
_heap->gc_timer()->register_gc_end();
}
-Aleksey
On 05/31/2017 09:30 PM, Zhengyu Gu wrote:
> In early return case, calling _heap->gc_timer()->register_gc_end() before
> GCTraceTime destructor, result an assertion in GCTimer code.
>
> -Zhengyu
>
> On 05/31/2017 03:27 PM, Aleksey Shipilev wrote:
>> On 05/31/2017 09:25 PM, Zhengyu Gu wrote:
>>> Imbalanced time partition results assertion failure in debug build.
>>
>> Can you explain a little more?
>>
>> -Aleksey
>>
More information about the shenandoah-dev
mailing list