case WAITING_NOTIFY_TIMEOUT:   this.threadState = RUNNING; this.waitForMonitor.addToEnterQueue(this);
case WAITING_NOTIFY_TIMEOUT: {  wakeUpByScheduler();  proc.getScheduler().addToReadyQueue(this, false, "thread.interrupt"); }
    public final void interrupt() {        // Set interrupted state        this.interrupted = true;        // Add to scheduler queue        final VmProcessor proc = VmMagic.currentProcessor();        proc.disableReschedule(true, null);        // Unqueue proxy (if any)        final VmThreadProxy p = this.proxy;        if (p != null) {            p.unproxy();        }        try {            switch (this.threadState) {            case ASLEEP:                // Wakeup .. move to ready queue                this.threadState = RUNNING;                proc.getScheduler().addToReadyQueue(this, false);                break;            case WAITING_NOTIFY:            case WAITING_NOTIFY_TIMEOUT:                // Move to enter queue. (unproxy has removed it from notifyQueue                // & optional wakeup queue)                this.threadState = RUNNING;                this.waitForMonitor.addToEnterQueue(this);                break;            }        } finally {            proc.enableReschedule(true, null);        }    }