while (true) {  mutex.lock();
boolean loop = true; final Address lcAddr = getLCAddress(); while (loop) {  final VmThread current = VmMagic.currentProcessor().getCurrentThread();
    private final void enterSlowPath() {        // No yet owner, try to obtain the lock        while (true) {            // Lock this monitor first            mutex.lock();                        // Try to claim this monitor            if (getLCAddress().attempt(0, 1)) {                // Success, we now own this monitor                this.owner = VmMagic.currentProcessor().currentThread;                mutex.unlock();                return;            } else {                // Get current thread                final VmThread current = VmMagic.currentProcessor().currentThread;                // Claim the lock for this monitor                VmMagic.currentProcessor().disableReschedule(false, null);                current.goSleepByMonitor(this, object, null, VmThread.WAITING_ENTER);                enterQueue.enqueue(current, false);                // Release the monitor lock                mutex.unlock();                VmMagic.currentProcessor().suspend(false, null);                // When we return here, another thread has given up                // this monitor.            }        }    }