static A awtCalcContinuously(A component, Runnable runnable) { if (runnable == null) ret component; new SingleThread thread; new BoolVar visible; var info = _threadInfo(); Runnable theLoop = r { _threadInheritInfo(info); while ping (visible!) { try { runnable.run(); } catch print e { sleepSeconds(1); // error penalty } } }; bindToComponent(component, -> { visible.set(); thread.go(theLoop); }, -> visible.clear()); ret component; }