RFR: 8351927: Change VirtualThread implementation to use use FJP delayed task handling

Alan Bateman alanb at openjdk.org
Tue Apr 8 14:29:50 UTC 2025


Follow up to JDK-8319447 to change the VirtualThread implementation to use FJP's delayed task handling.

The SPTE based implementation is not removed. It will continue to be used by tests. If custom schedulers are exposed in the future then they will use this implementation.

For timed-Object.wait, waitTimeoutExpired is changed to use lazySubmit to avoid signalling and increase the chance that the unparked virtual thread will continue on the current carrier. For timed-park, the timeout task is changed to reduced form of unpark that also uses lazySubmit, for the same reason.

`jcmd Thread.vthread_scheduler` is changed to no longer print the delay schedulers. Instead, the delayed task count will appear in the default scheduler output.

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

Commit messages:
 - Merge branch 'master' into JDK-8351927
 - Merge branch 'master' into JDK-8351927
 - Merge branch 'master' into JDK-8351927
 - Merge
 - Merge branch 'pull/23702' into JDK-8351927
 - Typo
 - Address review comments
 - Merge branch 'openjdk:master' into JDK-8319447
 - Address review comments
 - Update
 - ... and 51 more: https://git.openjdk.org/jdk/compare/867a0301...30eba776

Changes: https://git.openjdk.org/jdk/pull/24030/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24030&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8351927
  Stats: 405 lines in 8 files changed: 332 ins; 41 del; 32 mod
  Patch: https://git.openjdk.org/jdk/pull/24030.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24030/head:pull/24030

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


More information about the core-libs-dev mailing list