RFR: 8287281: adjust guarantee in Handshake::execute for the case of target thread being current [v4]

Robbin Ehn rehn at openjdk.java.net
Fri Jun 3 10:43:33 UTC 2022


On Fri, 3 Jun 2022 09:45:31 GMT, Johan Sjölén <duke at openjdk.java.net> wrote:

>> Please review this PR for fixing JDK-8287281.
>> 
>> I chose a different solution than the one suggested. Looking at all callers of `Handshake::execute`, it seems that only one depends on `target == current`. The rest special case that by calling `is_handshake_safe_for` and `do_thread` directly.  I converted the only instance of `Handshake::execute` with `target == current` to just directly call `do_thread`.
>> 
>> Furthermore we now explicitly check for this case in `Handshake::execute` with an assert and document that this should not be done.
>> 
>> Finally:  Should `VirtualThreadGetThreadClosure` and its `do_thread()` body be inlined instead? We can do this in this PR, imho, but I'm hoping to get some input on this.
>> 
>> 
>> Currently running tier1-5 to check if I'm missing something.
>
> Johan Sjölén has updated the pull request incrementally with three additional commits since the last revision:
> 
>  - do_thread(target) not self
>  - Remove checks for is_handshake_for, instead call Handshake::execute
>  - Switch order of handshake check

Thanks for the update, looks good.

Remember to re-run the tests!

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

Marked as reviewed by rehn (Reviewer).

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


More information about the serviceability-dev mailing list