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

Reply via email to