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

Reply via email to