On Tue, 21 Jun 2022 19:34:28 GMT, Chris Plummer <cjplum...@openjdk.org> 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

Reply via email to