RFR: 8373118: Test java/lang/Thread/virtual/Starvation.java timed out [v5]

Viktor Klang vklang at openjdk.org
Mon Dec 15 10:54:36 UTC 2025


On Mon, 15 Dec 2025 10:19:09 GMT, Viktor Klang <vklang at openjdk.org> wrote:

>> Doug Lea has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Adjust runworker for previous update
>
> src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 1892:
> 
>> 1890:             }
>> 1891:             if (q != null && q.base - qbase > 0)
>> 1892:                 break;
> 
> Crazy idea: Only create new workers on successful CAS if no queue-drift has occurred, but always prioritize to wake up sleeping workers regardless?
> 
> Suggestion:
> 
>                 if (v != null) {
>                     v.phase = sp;
>                     if (v.parking != 0)
>                         U.unpark(v.owner);
>                 } else if (q == null || q.base - qbase == 0)
>                     createWorker();
> 
>                 break;
>             }
>             if (q != null && q.base - qbase > 0)
>                 break;

Narrator: Turns out it was crazy, as it requires a back-out of nc. Disregard the comment above :)

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

PR Review Comment: https://git.openjdk.org/jdk/pull/28797#discussion_r2618919162


More information about the core-libs-dev mailing list