Aug 26, 2024
By design, virtual threads are unmounted while waiting for a reentrant lock or doing blocking I/O. An exception to this rule is when a virtual thread executes a synchronized block, in which case it remains pinned to the carrier thread even while waiting. #119516 has no synchronized blocks, so it was unmounted upon trying to acquire a reentrant lock.