> 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).
> 
> Testing: tier1-5

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 seven additional commits since 
the last revision:

 - Remove unused import
 - Merge branch 'master' into JDK-8378268
 - Merge branch 'master' into JDK-8378268
 - Avoid notifyAll if no join
 - Merge branch 'master' into JDK-8378268
 - Merge branch 'master' into JDK-8378268
 - Remove joinNanos

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/29839/files
  - new: https://git.openjdk.org/jdk/pull/29839/files/ffe35246..fa12b57e

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

  Stats: 14260 lines in 479 files changed: 7348 ins; 2653 del; 4259 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