RFR: 8288532: additional review changes for JDK-8286830

Daniel D. Daugherty dcubed at openjdk.org
Fri Jun 17 19:17:56 UTC 2022


On Fri, 17 Jun 2022 19:05:08 GMT, Daniel D. Daugherty <dcubed at openjdk.org> wrote:

>> src/hotspot/share/runtime/thread.inline.hpp line 151:
>> 
>>> 149:   ~AsyncExceptionHandshake() {
>>> 150:     Thread* current = Thread::current();
>>> 151:     if (current->is_Java_thread()) {
>> 
>> Why verify if this is a JavaThread? The target is always a JavaThread, and the sender of the exception is also a JavaThread(JVM_StopThread and JvmtiEnv::StopThread). Even the handshake operation will assert if the handshaker is not a JT.
>
> Will investigate.

JavaThread::send_async_exception() creates a new AsyncExceptionHandshake.
JavaThread::send_async_exception() is called by JVM_StopThread() and
JvmtiEnv::StopThread(). The InstallAsyncExceptionHandshake which wraps
the AsyncExceptionHandshake is installed via Handshake::execute() which
calls "  JavaThread* self = JavaThread::current()" first thing so send_async_exception()
will fire an assert() if not called by a JavaThread.

Will fix.

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

PR: https://git.openjdk.org/jdk19/pull/32


More information about the hotspot-runtime-dev mailing list