LocalExecutionControl in jdk.jshell actually uses Thread::stop to cancel 
execution of (long-running or infinite loops) user code in JShell, however 
Thread::stop is deprecated and planned for removal.

Proposed patch instruments all user code to call 
LocalExecutionControl::stopCheck method before every branch instruction.
Thread::stop call is replaced by setting global field 
LocalExecutionControl.allStop to true and stopCheck method then throws 
ThreadDead when called from the instrumented code.

Proposed patch requires jdk.jshell access to java.base 
jdk.internal.org.objectweb.asm package. 

Please review.

Thanks,
Adam

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

Commit messages:
 - removed obsolete SuppressWarnings
 - 8289613: Drop use of Thread.stop in jshell

Changes: https://git.openjdk.org/jdk/pull/10166/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10166&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8289613
  Stats: 54 lines in 2 files changed: 41 ins; 11 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/10166.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10166/head:pull/10166

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

Reply via email to