RFR: 8322829: Refactor nioBlocker to avoid blocking while holding Thread's interrupt lock [v2]

Alan Bateman alanb at openjdk.org
Mon Jan 8 09:04:57 UTC 2024


> In preparation for when virtual threads can unmount while holding a monitor or unmount when blocking on monitorenter, the implementation of VirtualThread's interrupt method is refactored to avoid parking/blocking while holding the Thread's interrupt lock. The implementations of sun.nio.ch.Interruptible are refactored to close/wakeup the InterruptibleChannel/Selector after releasing the interrupt lock. There is a lot of test coverage for async close and interrupt, no additional tests are added.

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

 - Make sun.nio.ch.Interruptible's javadoc a bit clearer
 - Merge
 - Merge
 - Initial commit

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/17219/files
  - new: https://git.openjdk.org/jdk/pull/17219/files/e402582d..634cd876

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

  Stats: 4903 lines in 422 files changed: 2589 ins; 930 del; 1384 mod
  Patch: https://git.openjdk.org/jdk/pull/17219.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17219/head:pull/17219

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


More information about the core-libs-dev mailing list