RFR: 8255384: Remove special_runtime_exit_condition() check from SS::block() [v2]

Patricio Chilano Mateo pchilanomate at openjdk.java.net
Tue Nov 3 17:02:02 UTC 2020


On Tue, 3 Nov 2020 02:32:07 GMT, David Holmes <dholmes at openjdk.org> wrote:

> This seems functionally fine, but it still seems to me that we are missing a Safepoint or SafepointMechanism API helper method that does:
> 
> ```
> SafepointMechanism::process_if_requested(THREAD); 
> if (THREAD->has_special_runtime_exit_condition()) { 
>     THREAD->handle_special_runtime_exit_condition(checkAsyncs); 
> }
> ```
> 
> Lets see if others have an opinion.
> Thanks.

How about SafepointMechanism::process_if_requested_with_exit_check(bool check_asyncs)?

> src/hotspot/share/interpreter/zero/bytecodeInterpreter.cpp line 112:
> 
>> 110:          CALL_VM(SafepointMechanism::process_if_requested(THREAD);   \
>> 111:                  if (THREAD->has_special_runtime_exit_condition()) { \
>> 112:                    THREAD->handle_special_runtime_exit_condition();  \
> 
> Please add explicit arg: "(true /* check asyncs */)"
> 
> Using a multi-statement code block for the CALL_VM macro looks odd to me, but I find these zero macros unpleasant to begin with.

Yes, that's also why I liked better the TIVFJ wrapper. But if we can agree on the helper method then that would change to a single line.

> src/hotspot/share/runtime/safepoint.cpp line 936:
> 
>> 934:     SafepointMechanism::process_if_requested(self);
>> 935:     if (self->has_special_runtime_exit_condition()) {
>> 936:       self->handle_special_runtime_exit_condition();
> 
> Please add explicit arg: "(true /* check asyncs */)"

Added.

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

PR: https://git.openjdk.java.net/jdk/pull/913


More information about the hotspot-runtime-dev mailing list