question: public void runUpdateNow ( ) { synchronized ( this ) { if ( done || screenUpdater == null || d3dwSurfaces == null || d3dwSurfaces . size ( ) == 0 ) { return ; } } synchronized ( runLock ) { needsUpdateNow = true ; runLock . notifyAll ( ) ; while ( needsUpdateNow ) { try { runLock . wait ( ) ; } catch ( InterruptedException e ) { } } } }
target:  Wakes up the screen updater thread and waits for the completion of the update. This method is called from Toolkit.sync() or when there was a copy from a VI to the screen so that swing applications would not appear to be sluggish.