private void updateDisplayList() {
        synchronized (lockA) {
            for (Displayable disp:displayablesAddition) {
                // Add event handlers
                for (KeyboardEventHandler handle:disp.getKeyboardHandlers()) {
                    keyboardEventHandlers.add(0, handle);
                }
                for (MouseEventHandler handle:disp.getMouseHandlers()) {
                    mouseEventHandlers.add(0, handle);
                }
                displayables.add(disp);
                disp.init();
            }
            displayablesAddition.clear();
            lockA.notifyAll();
        }
        
        synchronized (lockB) {
            for (Displayable disp:displayablesRemoval) {
                // Add event handlers
                for (KeyboardEventHandler handle:disp.getKeyboardHandlers()) {
                    keyboardEventHandlers.remove(handle);
                }
                for (MouseEventHandler handle:disp.getMouseHandlers()) {
                    mouseEventHandlers.remove(handle);
                }
                displayables.add(disp);
                disp.destroy();
            }
            displayablesRemoval.clear();
            lockB.notifyAll();
        }
    }