sclass DoLater implements AutoCloseable { ISleeper sleeper; long targetSysTime; volatile Runnable action; transient IF1 executor; bool enabled; *() {} *(DoLater *targetSysTime, Runnable *action) {} void enable() { if (enabled) ret; if (sleeper == null) sleeper = defaultSleeper(); sleeper.doLater(targetSysTime, r { runWithExecutor(action, executor); }); } }