JDK 26 EA builds: changes to avoid pinning while waiting for class initialization

Viktor Klang viktor.klang at oracle.com
Wed Nov 19 20:49:14 UTC 2025


Excellent news & work, Patricio!

On 2025-11-19 16:32, Patricio Chilano Mateo wrote:
> The latest JDK 26 EA builds [1] now include the changes from 
> JDK-8369238 [2]. With this update, a virtual thread that tries to 
> initialize a class already being initialized by another thread will, 
> in most cases, be unmounted from its carrier while waiting. 
> Previously, the virtual thread would remain pinned to its carrier 
> while waiting for the other thread to execute the class initializer.
>
> This will help avoid pathological cases that can lead to deadlocks, in 
> particular, those where all carriers are pinned by virtual threads 
> waiting for another thread to execute a class initializer, while the 
> thread executing the class initializer blocks or waits on something 
> that requires a virtual thread to execute.
>
> For now, the changes address the most common initialization paths 
> described in JDK-8369238, but this might be extended in the future. As 
> such, testing and feedback would be greatly appreciated, especially 
> for those who have run into this issue on real-world applications.
>
> Thanks,
> Patricio
>
> [1] https://jdk.java.net/26/
> [2] https://bugs.openjdk.org/browse/JDK-8369238

-- 
Cheers,
√


Viktor Klang
Software Architect, Java Platform Group
Oracle



More information about the loom-dev mailing list