public void run() { try { mainLoop(); } finally { // Someone killed this Thread, behave as if Timer cancelled synchronized (queue) { newTasksMayBeScheduled= false; queue.clear(); // Eliminate obsolete references } } }
@Override public void run() { try { mainLoop(1); } finally { synchronized (queue) { if (!queue.isEmpty()) { long next = queue.getMin().nextExecutionTime; long now = System.currentTimeMillis(); int delta = (int) (next - now); notifyQueue(delta); } } } // try { // mainLoop(0); // } finally { // // Someone killed this Thread, behave as if Timer cancelled // synchronized(queue) { // newTasksMayBeScheduled = false; // queue.clear(); // Eliminate obsolete references // } // } }
@Override public void run() { try { mainLoop(1); } finally { synchronized (queue) { if (!queue.isEmpty()) { long next = queue.getMin().nextExecutionTime; long now = System.currentTimeMillis(); int delta = (int) (next - now); notifyQueue(delta); } } } // try { // mainLoop(0); // } finally { // // Someone killed this Thread, behave as if Timer cancelled // synchronized(queue) { // newTasksMayBeScheduled = false; // queue.clear(); // Eliminate obsolete references // } // } }