RFR: 8304919: Implementation of Virtual Threads [v4]
Alan Bateman
alanb at openjdk.org
Thu Mar 30 19:58:24 UTC 2023
On Wed, 29 Mar 2023 21:43:38 GMT, Paul Sandoz <psandoz at openjdk.org> wrote:
>> Alan Bateman has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Fix ThreadSleepEvent again
>
> src/java.base/share/classes/java/lang/Thread.java line 1546:
>
>> 1544: // bind thread to container
>> 1545: if (this.container != null)
>> 1546: throw new IllegalThreadStateException();
>
> This check is not replicated in `VirtualThread::start`, i think the CAS protects against that. Maybe assert instead in the virtual thread implementation, thereby the comment in `setThreadContainer` can be changed to something like "`this.container` checked/asserted to be != null before call to Virtual/Thread::start(ThreadContainer)" ?
Yes, they are different. If adding platform thread to a container fails with OOME then it does so when its threadStatus is 0. This check just previous another attempt to start it. Virtual threads work differently but I can add an assert to make this clearer.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/13203#discussion_r1153726790
More information about the serviceability-dev
mailing list