/guava/guava/src/com/google/common/util/concurrent/InterruptibleTask.java
if ( state == PARKED || compareAndSet(state, PARKED)) {
if ( spinCount > MAX_BUSY_WAIT_SPINS ) {
Blocker blocker = null; while (state instanceof Blocker || state == PARKED) { if (state instanceof Blocker) { blocker = (Blocker) state; } spinCount++; <extra_id_0> if (state == PARKED || compareAndSet(state, PARKED)) { restoreInterruptedBit = Thread.interrupted() || restoreInterruptedBit; LockSupport.park(blocker); } } else { Thread.yield();