static TimerTask smartTimerTask(final O r, final java.util.Timer timer, final int delay) { ret new TimerTask { long lastRun; public void run() { if (!licensed()) timer.cancel(); else { lastRun = fixTimestamp(lastRun); long now = now(); if (now >= lastRun + delay*0.9) { lastRun = now; pcallF(r); } } } }; }