RFR: 8361912: ThreadsListHandle::cv_internal_thread_to_JavaThread does not deal with a virtual thread's carrier thread [v2]
Alan Bateman
alanb at openjdk.org
Fri Jul 25 07:08:55 UTC 2025
On Fri, 25 Jul 2025 06:21:29 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:
>> Once in the handshake the carrier (and thus virtual thread) is "frozen" with regards to any transition. It could be anywhere in the process of mounting/unmounting (depending of course exactly where the carrier might respond to the handshake request), and the actual handshake operation has to deal with that. But that is true no matter how you extracted a reference to the carrier. As I said before the only thing this change guarantees is that the carrier is protected by the TLH and can't fully terminate whilst handshaking with it.
>
> Okay, thanks.
Once this change is in main line then we can sync'up the loom repo and work on the follow-up changes. The loom repo has changes (that are not in main line) for "suspending" an unmounted thread. For the mounted case then we'll need checks in the handshake to ensure that the expected virtual threads is mounted. We'll need stress tests of course and we can collaborate there in advance of proposing changes for main line.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26287#discussion_r2230330528
More information about the hotspot-dev
mailing list