Delayed AWT update: long version; long lastUpdate; // AWT time void data_trigger() { triggerQuickUpdate(); triggerShow(++version, 1000); } void awt_quickUpdate() { if (lastUpdate < now()-1000) { getAndRenderContent(); lastUpdate = now(); // This can be rough, no problem } } void awt_show(long n) { if (n == version) { getAndRenderContent(); lastUpdate = now(); } }