case WAITING:
case WAITING_ENTER: case WAITING_NOTIFY: case WAITING_NOTIFY_TIMEOUT:
    public final void start() {        switch (threadState) {        case CREATED:            {                //Screen.debug("thread.start");                final VmScheduler scheduler = VmMagic.currentProcessor().getScheduler();                stack = VmSystem.allocStack(stackSize);                Unsafe.initThread(this, stack, stackSize);                stackEnd = getStackEnd(stack, stackSize);                scheduler.registerThread(this);                threadState = RUNNING;                scheduler.addToReadyQueue(this, false, "thread.start");            }            break;        case RUNNING:        case SUSPENDED:        case WAITING:        case ASLEEP:            throw new IllegalThreadStateException("already started");        case STOPPED:            /* XXX */            break;        case DESTROYED:            throw new IllegalThreadStateException("destroyed");        default:            throw new IllegalThreadStateException("Unknown thread state");        }    }