private static final class RepeatingTimedTask extends TimedTask {
private final Runnable runnable;
private volatile Thread runningOn;
private RepeatingTimedTask(Runnable runnable, long initialMillis, long intervalMillis) {
this.interruptHook = new InterruptHandle() {
@Override
public void sendInterrupt() {
try {
if (runningOn != null)
runningOn.interrupt();