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