RFR: 8309545: Thread.interrupted from virtual thread needlessly resets interrupt status
Alan Bateman
alanb at openjdk.org
Thu Jun 8 09:27:56 UTC 2023
Thread.interrupted is used to "get and clear" the current thread's interrupt status. When called from a virtual thread, the current implementation always clears the carrier's interrupt status. There is no need to do this when the interrupt status is not set, it can just read the interrupt status and return false in that case.
This was found by Sergey Kuksenko when comparing platform vs. virtual thread performance. Once CODETOOLS-7903476 is in a released version of JMH then we can start to accumulate benchmarks that execute in virtual threads.
Testing: tier1-5
-------------
Commit messages:
- Merge
- Initial commit
Changes: https://git.openjdk.org/jdk/pull/14361/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=14361&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8309545
Stats: 6 lines in 1 file changed: 1 ins; 0 del; 5 mod
Patch: https://git.openjdk.org/jdk/pull/14361.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/14361/head:pull/14361
PR: https://git.openjdk.org/jdk/pull/14361
More information about the core-libs-dev
mailing list