> 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.

Alan Bateman has updated the pull request with a new target base due to a merge 
or a rebase. The incremental webrev excludes the unrelated changes brought in 
by the merge/rebase. The pull request contains five additional commits since 
the last revision:

 - Merge
 - Fix typo in test comment
 - Reduce instanceof checks
 - Update
 - Initial commit

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/11533/files
  - new: https://git.openjdk.org/jdk/pull/11533/files/2e707757..151cbd0d

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=11533&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=11533&range=00-01

  Stats: 12718 lines in 291 files changed: 8666 ins; 2982 del; 1070 mod
  Patch: https://git.openjdk.org/jdk/pull/11533.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/11533/head:pull/11533

PR: https://git.openjdk.org/jdk/pull/11533

Reply via email to