public synchronized void applyUpdates()
{

    //apply all new updates in the buffer

    while (nextSlotToDisplay != nextSlotAvailable){

        Font lFont;

        //if the label pointer is not null, then that label needs to be updated
        if (updateInfos[nextSlotToDisplay].label != null){

            //only update the font if it was not passed in as null
            if ((lFont = updateInfos[nextSlotToDisplay].font) != null) {
                updateInfos[nextSlotToDisplay].label.setFont(lFont);
            }

            //update the label text
            updateInfos[nextSlotToDisplay].label.setText(
                                          updateInfos[nextSlotToDisplay].text);

        }

        //force a display refresh
        mainFrame.repaint();

        //null out the current info set to release it and move to the next
        updateInfos[nextSlotToDisplay++] = null;

        //wrap around from end of array to beginning
        if (nextSlotToDisplay == UPDATE_BUFFER_SIZE) {nextSlotToDisplay = 0;}

    }// while (nextSlotToDisplay != nextSlotAvailable)

}// end of GuiUpdater::applyUpdates