< prev index next >

src/java.base/share/classes/java/lang/VirtualThread.java

Print this page
*** 872,17 ***
      }
  
      @Override
      boolean getAndClearInterrupt() {
          assert Thread.currentThread() == this;
!         synchronized (interruptLock) {
!             boolean oldValue = interrupted;
!             if (oldValue)
                  interrupted = false;
!             carrierThread.clearInterrupt();
!             return oldValue;
          }
      }
  
      @Override
      Thread.State threadState() {
          switch (state()) {
--- 872,18 ---
      }
  
      @Override
      boolean getAndClearInterrupt() {
          assert Thread.currentThread() == this;
!         boolean oldValue = interrupted;
!         if (oldValue) {
!             synchronized (interruptLock) {
                  interrupted = false;
!                 carrierThread.clearInterrupt();
!             }
          }
+         return oldValue;
      }
  
      @Override
      Thread.State threadState() {
          switch (state()) {
< prev index next >