case WAITING: { final Monitor mon = this.waitForMonitor; mon.removeThreadFromQueues(this); }
case WAITING_ENTER: case WAITING_NOTIFY: case WAITING_NOTIFY_TIMEOUT: { final Monitor mon = this.waitForMonitor; mon.removeThreadFromQueues(this); }
    final void wakeUpByScheduler() {        switch (threadState) {        case ASLEEP:        case RUNNING:        case YIELDING:            {                // Do nothing            }            break;        case WAITING:            {                final Monitor mon = this.waitForMonitor;                mon.removeThreadFromQueues(this);            }            break;        default:            {                Unsafe.debug("Incorrect threadState in wakeUpByScheduler ");                Unsafe.debug(threadState);            }        }        threadState = RUNNING;    }