RFR(XS) Early return results imbalanced time partition

Zhengyu Gu zgu at redhat.com
Wed May 31 19:36:50 UTC 2017


People hates/avoid goto, no?

-Zhengyu

On 05/31/2017 03:33 PM, Aleksey Shipilev wrote:
> 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