Make sure cancelled scheduled tasks will not run again if cancelled before

This commit is contained in:
Norman Maurer 2013-03-22 08:12:57 +01:00
parent 28576aa41e
commit 624bda4695

View File

@ -800,16 +800,19 @@ public abstract class SingleThreadEventExecutor extends AbstractEventExecutor {
setSuccessInternal(result); setSuccessInternal(result);
} }
} else { } else {
task.call(); // check if is done as it may was cancelled
if (!executor().isShutdown()) { if (!isDone()) {
long p = periodNanos; task.call();
if (p > 0) { if (!executor().isShutdown()) {
deadlineNanos += p; long p = periodNanos;
} else { if (p > 0) {
deadlineNanos = nanoTime() - p; deadlineNanos += p;
} } else {
if (!isDone()) { deadlineNanos = nanoTime() - p;
executor().delayedTaskQueue.add(this); }
if (!isDone()) {
executor().delayedTaskQueue.add(this);
}
} }
} }
} }