8322829: Refactor nioBlocker to avoid blocking while holding Thread's interrupt lock#17219
8322829: Refactor nioBlocker to avoid blocking while holding Thread's interrupt lock#17219AlanBateman wants to merge 4 commits intoopenjdk:masterfrom
Conversation
|
👋 Welcome back alanb! A progress list of the required criteria for merging this PR into |
|
@AlanBateman The following labels will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing lists. If you would like to change these labels, use the /label pull request command. |
Webrevs
|
src/java.base/share/classes/java/nio/channels/spi/AbstractInterruptibleChannel.java
Show resolved
Hide resolved
src/java.base/share/classes/java/nio/channels/spi/AbstractInterruptibleChannel.java
Show resolved
Hide resolved
jaikiran
left a comment
There was a problem hiding this comment.
These changes look OK to me.
There are some trivial javadoc comments which you can decide if are worth doing - it's fine by me either way since like you note it is a tightly controlled internal interface.
|
@AlanBateman This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be: You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 5 new commits pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the ➡️ To integrate this PR with the above commit message to the |
jaikiran
left a comment
There was a problem hiding this comment.
Thank you Alan for the updated javadoc. This looks good to me.
|
/integrate |
|
Going to push as commit 7286f52.
Your commit was automatically rebased without conflicts. |
|
@AlanBateman Pushed as commit 7286f52. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
|
I see this has been already integrated. |
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.
Progress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/17219/head:pull/17219$ git checkout pull/17219Update a local copy of the PR:
$ git checkout pull/17219$ git pull https://git.openjdk.org/jdk.git pull/17219/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 17219View PR using the GUI difftool:
$ git pr show -t 17219Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/17219.diff
Webrev
Link to Webrev Comment