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

David Holmes david.holmes at oracle.com
Tue Nov 3 21:56:27 UTC 2020


On 4/11/2020 3:02 am, Patricio Chilano Mateo wrote:
> 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)?

That works for me.

Thanks,
David
-----

>> 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