Set `interrupted` in `Thread::interrupt` before reading `nioBlocker` for 
correct (Dekker scheme) synchronization with concurrent execution of 
[`AbstractInterruptibleChannel::begin`](https://github.com/openjdk/jdk/blob/59062402b9c5ed5612a13c1c40eb22cf1b97c41a/src/java.base/share/classes/java/nio/channels/spi/AbstractInterruptibleChannel.java#L176).

The change passed our CI functional testing: JTReg tests: tier1-4 of hotspot 
and jdk. All of Langtools and jaxp. SPECjvm2008, SPECjbb2015, Renaissance 
Suite, and SAP specific tests.
Testing was done with fastdebug and release builds on the main platforms and 
also on Linux/PPC64le and AIX.

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

Commit messages:
 - New version of LotsOfInterrupts.java supporting virtual threads
 - Add Alan's LotsOfInterrupts.java test
 - Must checkAccess before changing interrupt state of other thread
 - 8323782: Race: Thread::interrupt vs. AbstractInterruptibleChannel.begin

Changes: https://git.openjdk.org/jdk/pull/17444/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17444&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8323782
  Stats: 101 lines in 2 files changed: 95 ins; 5 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/17444.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17444/head:pull/17444

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

Reply via email to