On 21/08/2024 10:50, Egor Ushakov wrote:
Hi Chris,
I tried it on jdk 23 and it works the same way :(
It is clear that calling Thread.interrupted() in debugger should
modify the interrupted state, but it does not...
It looks like the debugger is taking thread interrupted state from
somewhere else, and also somehow calling different methods...
Check the attached video for more details.
As Chris said, the JDWP agent uses JVMTI RawMonitorWait so it has to
handle JVMTI_ERROR_INTERRUPT (which must clear the interrupt status) and
then reassert the interrupt status later. It would be useful to check
the value of ThreadNode.pendingInterrupt to see that it is true, that
would at least show that the interrupt status will be restored.
-Alan