RFR: 8323782: Race: Thread::interrupt vs. AbstractInterruptibleChannel.begin [v2]

Alan Bateman alanb at openjdk.org
Fri Jan 19 08:00:26 UTC 2024


On Wed, 17 Jan 2024 15:38:22 GMT, Richard Reingruber <rrich at openjdk.org> wrote:

>> 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.
>
> Richard Reingruber has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Review Alan

> I noticed that VirtualThread overrides `isInterrupted`
> Is there a reason to have this override?

It was necessary at one point but no reason to now except to keep it close at the source level with the other methods that access the interrupt status.

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

PR Comment: https://git.openjdk.org/jdk/pull/17444#issuecomment-1899930062


More information about the core-libs-dev mailing list