On Sat, 16 Apr 2022 12:31:41 GMT, ExE Boss <d...@openjdk.java.net> wrote:

>> Alan Bateman has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Refresh
>
> src/java.base/share/classes/jdk/internal/misc/Blocker.java line 111:
> 
>> 109:                 methodType = MethodType.methodType(void.class, 
>> long.class);
>> 110:                 endCompensatedBlock = l.findVirtual(ForkJoinPool.class, 
>> "endCompensatedBlock", methodType);
>> 111: 
> 
> This can use `SharedSecrets.getJavaLangInvokeAccess()` in order to avoid 
> using `privateLookupIn(…)` and `AccessController.doPrivileged(…)`.
> 
> Suggestion:
> 
>                 JavaLangInvokeAccess JLIA = 
> SharedSecrets.getJavaLangInvokeAccess();
>                 MethodType methodType = MethodType.methodType(long.class);
>                 beginCompensatedBlock = JLIA.findVirtual(ForkJoinPool.class, 
> "beginCompensatedBlock", methodType);
>                 if (beginCompensatedBlock == null) {
>                     throw new NoSuchMethodException(ForkJoinPool.class + 
> ".beginCompensatedBlock" + methodType);
>                 }
>                 methodType = MethodType.methodType(void.class, long.class);
>                 endCompensatedBlock = JLIA.findVirtual(ForkJoinPool.class, 
> "endCompensatedBlock", methodType);
>                 if (endCompensatedBlock == null) {
>                     throw new NoSuchMethodException(ForkJoinPool.class + 
> ".endCompensatedBlock" + methodType);
>                 }

I think we may just eliminate the reflection use and use a shared secret 
instead.

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

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

Reply via email to