On Wed, 7 Jun 2023 15:12:40 GMT, Alan Bateman <al...@openjdk.org> wrote:
> 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 src/java.base/share/classes/java/lang/VirtualThread.java line 879: > 877: boolean oldValue = interrupted; > 878: if (oldValue) { > 879: synchronized (interruptLock) { Don't you still need to read under the lock to synchronize with the interrupt method? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/14361#discussion_r1222725444