In DefaultIoFuture#awaitUninterruptibly(), it delegates the method
invocation to await0(Long.MAX_VALUE, fasle), but in the first line of
await0(long
timeoutMillis, boolean interruptable), the endTime=
System.currentTimeMillis() + timeoutMillis, so endTime
=System.currentTimeMillis() + Long.MAX_VALUE, it is over flow and is a
negative value.
So after waiting for the DEAD_LOCK_INTERVAL, if the operation is not ready,
I didn't know how to express myself because of my weak English, I'll put up
the code.

if(ready){ //till now , if the operation is not ready.
    return true;
}else{
    if(endTime < System.currentTimeMillis()){   //the endTime is a negative
value, so it returns false. I think is should continue the loop and continue
wait operation, am I right?
        return ready;
    }
}

Reply via email to