@Override
    public void destroy(boolean waitFor) {
        if (needClose.get()) {
            return; // Already destroyed
        }

        needClose.set(true);
        if (waitFor)
            waitFor(false);
    }
De-initialize in the OpenGL thread.
jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglAbstractDisplay.java