This patch adds an alternative virtual thread implementation where each virtual 
thread is backed by an OS thread. It doesn't scale but it can be used by ports 
that don't have continuations support in the VM. Aside from scalability, the 
lack of continuations support means:

1. JVM TI is not supported when running with --enable-preview (the JVM TI spec 
allows for this) 
2. jshell --enable-preview can't be used (as jshell uses the debugger APIs and 
so needs JVM TI)

The VM option "VMContinuations" is added as an experimental option so it can be 
used by tests. A number of tests are changed to re-run with 
-XX:-VMContinuations. A new jtreg property is added so that tests that need the 
underlying VM support to be present can use "@requires vm.continuations" in the 
test description. A follow-up change would be to add "@requires 
vm.continuations" to the ~70 serviceability/jvmti/vthread that run with preview 
features enabled.

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

Commit messages:
 - Continuation clinit should fail if no continuations support
 - Fix merge issue with test
 - Change VMContinuations to be experimental option, ensure JNI GetEnv returns 
EVERSION
 - Update
 - Expend test coverage
 - Merge
 - Initial commit

Changes: https://git.openjdk.java.net/jdk/pull/8939/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=8939&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8287496
  Stats: 742 lines in 71 files changed: 570 ins; 53 del; 119 mod
  Patch: https://git.openjdk.java.net/jdk/pull/8939.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/8939/head:pull/8939

PR: https://git.openjdk.java.net/jdk/pull/8939

Reply via email to