On Tue, 6 Dec 2022 10:16:38 GMT, Alan Bateman <[email protected]> wrote:
> The implementation of Thread.yield for virtual threads is currently a "lazy
> submit". This means the task for the virtual thread is queued to the
> carrier/worker local queue without signalling other threads. This behavior
> can be surprising/unfair when there are tasks in the submission queues, say
> when a platform thread has started or unparked a virtual thread.
>
> Ron, Doug Lea, Viktor Klang and I have discussed this topic and propose to
> change Thread.yield to use "external submit" when the local task queue is
> empty, and to push to the local queue when not empty. The change improves the
> fairness but will of course increase the chances that repeated Thread.yield
> will bounce between carriers.
test/jdk/java/lang/Thread/virtual/YieldQueuing.java line 43:
> 41:
> 42: /**
> 43: * Test Thread.yield submits the task for the current virtyal thread
> to a scheduler
Suggestion:
* Test Thread.yield submits the task for the current virtual thread to a
scheduler
-------------
PR: https://git.openjdk.org/jdk/pull/11533