static java.util.Timer calcOnConceptChanges(int delay, final O runnable, final bool runOnFirstTime) { ret doEvery_daemon(delay, 0, new Runnable { long c = runOnFirstTime ? -1 : changeCount(); new SingleThread thread; public void run() { long _c = changeCount(); if (_c != c && !thread.running()) { c = _c; thread.go(runnable); } } }); }