RFR: 8289613: Drop use of Thread.stop in jshell [v2]

Adam Sotona asotona at openjdk.org
Mon Sep 5 15:53:32 UTC 2022


> 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

Adam Sotona has updated the pull request incrementally with one additional commit since the last revision:

  alternative implementation where instrumented code is directly checking Thread::interrupted

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/10166/files
  - new: https://git.openjdk.org/jdk/pull/10166/files/355ba7f7..0f0e0dd1

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

  Stats: 27 lines in 1 file changed: 17 ins; 7 del; 3 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


More information about the core-libs-dev mailing list