Help me understand a part of Java Language Specification
- by Software Engeneering Learner
I'm reading part 17.2.1 of Java language specification: http://docs.oracle.com/javase/specs/jls/se7/html/jls-17.html#jls-17.2.1
I won't copy a text, it's too long, but I would like to know, why for third step of sequence they're saying that
If thread t was removed from m's wait set in step 2 due to an interrupt
Thread couldn't get to step 2 it wasn't removed from wait set, because it written for the step 1:
Thread t does not execute any further instructions until it has been removed from m's wait set
Thus thread can't be removed from wait set in step 2 whatever it's due to, because it was already removed.
Please help me understand this.