diff --git a/router/java/src/net/i2p/router/JobQueue.java b/router/java/src/net/i2p/router/JobQueue.java index 0435b58f9..387616dd8 100644 --- a/router/java/src/net/i2p/router/JobQueue.java +++ b/router/java/src/net/i2p/router/JobQueue.java @@ -189,6 +189,12 @@ public class JobQueue { return; } + public void timingUpdated() { + synchronized (_timedJobs) { + _timedJobs.notifyAll(); + } + } + public int getReadyCount() { synchronized (_readyJobs) { return _readyJobs.size(); diff --git a/router/java/src/net/i2p/router/JobTiming.java b/router/java/src/net/i2p/router/JobTiming.java index 8f2e939ac..52b4885ec 100644 --- a/router/java/src/net/i2p/router/JobTiming.java +++ b/router/java/src/net/i2p/router/JobTiming.java @@ -33,7 +33,15 @@ public class JobTiming implements Clock.ClockUpdateListener { * */ public long getStartAfter() { return _start; } - public void setStartAfter(long startTime) { _start = startTime; } + public void setStartAfter(long startTime) { + _start = startTime; + // sure, this current job object may not already be on the queue, so + // telling the queue of the update may be irrelevent... + // but... + // ... + // who cares? this helps in the case where it is on the queue + _context.jobQueue().timingUpdated(); + } /** * # of milliseconds after the epoch the job actually started