RFR: 8378268: Thread.join can wait on Thread, allows joinNanos to be removed
Alan Bateman
alanb at openjdk.org
Wed Feb 25 11:05:33 UTC 2026
Thread.join was historically implemented with a loop of Object.wait conditioned on isAlive. We couldn't for this virtual threads because it would pin a virtual thread invoking join to it carrier. Now that Object.wait preempts, it means the special implementation of join for virtual threads can be removed. Where possible, the notifyAll is elided as it adds to the cost of termination.
The implNote of the join methods is restored (this is implNote text, not spec, so no CSR required).
-------------
Commit messages:
- Avoid notifyAll if no join
- Merge branch 'master' into JDK-8378268
- Merge branch 'master' into JDK-8378268
- Remove joinNanos
Changes: https://git.openjdk.org/jdk/pull/29839/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=29839&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8378268
Stats: 85 lines in 2 files changed: 10 ins; 63 del; 12 mod
Patch: https://git.openjdk.org/jdk/pull/29839.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/29839/head:pull/29839
PR: https://git.openjdk.org/jdk/pull/29839
More information about the core-libs-dev
mailing list