RFR: 8265035: Remove unneeded exception check from refill_ic_stubs()
Patricio Chilano Mateo
pchilanomate at openjdk.java.net
Tue Apr 13 01:55:56 UTC 2021
On Mon, 12 Apr 2021 14:46:02 GMT, Patricio Chilano Mateo <pchilanomate at openjdk.org> wrote:
> Hi,
>
> Please review this small fix. The HAS_PENDING_EXCEPTION check will always return false since EXCEPTION_MARK will check that there are no pending exceptions upon entering and VMThread::execute() doesn't throw exceptions.
> The comment says that we could get a potential async exception, which is true, since the JT will be blocked waiting on VMOperation_lock. However delivering an async exception doesn't set the _pending_exception field, only additional fields (see JavaThread::send_thread_stop() -> set_pending_async_exception()) that will be later check in check_and_handle_async_exceptions() and only then _pending_exception will be set.
>
> Thanks,
> Patricio
Hi David,
Thanks for looking at this.
> Changes look good.
>
> Though I wonder whether we even need the EXCEPTION_MARK?
I think it can be removed actually. The alternative could be to change it for assert(!HAS_PENDING_EXCEPTION, "there should be no pending exceptions") to only verify that there are no pending exceptions when entering refill_ic_stubs(). But I think that only makes sense if the following code can throw exceptions and you want to avoid overriding a possibly already pending one. So if you are okay too I can remove it.
Thanks,
Patricio
> Thanks,
> David
-------------
PR: https://git.openjdk.java.net/jdk/pull/3436
More information about the hotspot-runtime-dev
mailing list