On Mon, 8 Sep 2025 18:31:51 GMT, Leonid Mesnik <[email protected]> wrote:

>> This is the second attempt to fix method `post_meth_exit` to correctly set 
>> state and preserve result.
>> The related fix here:
>> https://github.com/openjdk/jdk/commit/b7b64bb6c800b45e32ff37b1b92b5927a3b3fb56
>> Hope fix became clarere now.
>> 
>> There 2 problems in this post_meth_exit:
>> 1) The result is preserved only if 
>> `state->is_enabled(JVMTI_EVENT_METHOD_EXIT)` however transition in the 
>> JRT_BLOCK_END happens always. So there is a risk of loosing method results 
>> in the interp_only mode.
>> 2) The method `get_jvmti_thread_state` should be called when thread is in vm 
>> state only.
>> 
>> The fix adds `post_method_exit_transition` to have single exit point with 
>> oop restoration.
>
> Leonid Mesnik has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   interopnly_state should be saved

Thanks that looks clearer to me now.

One pre-existing typo.

src/hotspot/share/prims/jvmtiExport.cpp line 1870:

> 1868:   JRT_BLOCK_END
> 1869:   if (interp_only) {
> 1870:     // The JRT_BLOCK_END can safepoint in ThreadInVMfromJava 
> desctructor. Now it is safe to allow

Suggestion:

    // The JRT_BLOCK_END can safepoint in ThreadInVMfromJava destructor. Now it 
is safe to allow

-------------

Marked as reviewed by dholmes (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/27112#pullrequestreview-3199680287
PR Review Comment: https://git.openjdk.org/jdk/pull/27112#discussion_r2332223595

Reply via email to