On Tue, 21 Jun 2022 19:34:28 GMT, Chris Plummer <[email protected]> wrote:
>> Serguei Spitsyn has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> remove _depth == 0 clause from sanity check assert
>
> src/hotspot/share/prims/jvmtiImpl.cpp line 647:
>
>> 645: }
>> 646: if (_set) {
>> 647: if (fr.is_heap_frame()) { // we want this check after the check for
>> JVMTI_ERROR_INVALID_SLOT
>
> It would be good to elaborate a bit more on this check. Say something about
> it being a "safepoint poll on return in the oldest thawed frame", and why
> that is a problem.
Okay. I'd suggest this:
if (_set) {
if (fr.is_heap_frame()) { // we want this check after the check for
JVMTI_ERROR_INVALID_SLOT
assert(Continuation::is_frame_in_continuation(_jvf->thread(), fr),
"sanity check");
// The topmost frame of a mounted continuation can still be in the heap.
This code is executed at safepoint.
// The safepoint could be as we return to the return barrier but before
we execute it (poll return).
_result = JVMTI_ERROR_OPAQUE_FRAME; // deferred locals currently
unsupported in continuations
return;
}
Is it more clear?
-------------
PR: https://git.openjdk.org/jdk19/pull/42