On Tue, 6 Dec 2022 10:16:38 GMT, Alan Bateman <al...@openjdk.org> 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

Reply via email to