RFR: 8284161: Implementation of Virtual Threads (Preview) [v5]

Alan Bateman alanb at openjdk.java.net
Mon Apr 25 13:14:48 UTC 2022


On Fri, 22 Apr 2022 02:26:50 GMT, ExE Boss <duke at 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/java/lang/ThreadLocal.java line 179:
> 
>> 177:     private T get(Thread t) {
>> 178:         ThreadLocalMap map = getMap(t);
>> 179:         if (map != null && map != ThreadLocalMap.NOT_SUPPORTED) {
> 
> Due to the way `setInitialValue` is implemented, `getMap(t)` will currently be called twice when `ThreadLocal`s are disabled.
> 
> --------------------------------------------------------------------------------
> 
> This method should probably be changed so that when `map == ThreadLocalMap.NOT_SUPPORTED`, it simply does:
> 
> return initialValue();
> 
> 
> --------------------------------------------------------------------------------
> 
> Suggestion:
> 
>         if (map != null) {
>             if (map == ThreadLocalMap.NOT_SUPPORTED) {
>                 return initialValue();
>             }

It's benign but what you suggest may be clearer - thanks!

> src/java.base/share/classes/java/lang/ThreadLocal.java line 423:
> 
>> 421:          * Construct a new map without a table.
>> 422:          */
>> 423:         ThreadLocalMap() {
> 
> It might be possible for this to be `private`:
> Suggestion:
> 
>         private ThreadLocalMap() {

Yes, this can be private.

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

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


More information about the serviceability-dev mailing list