this.threadState = WAITING;
this.threadState = waitState;
    final void prepareWait(Monitor monitor) throws UninterruptiblePragma {        // Keep this order of assignments!        this.waitForMonitor = monitor;        this.threadState = WAITING;    }