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