183 |
|
/** |
184 |
|
* Creates a one-shot action with given nanoTime-based trigger time. |
185 |
|
*/ |
186 |
< |
ScheduledFutureTask(Runnable r, V result, long triggerTime) { |
186 |
> |
ScheduledFutureTask(Runnable r, V result, long triggerTime, |
187 |
> |
long sequenceNumber) { |
188 |
|
super(r, result); |
189 |
|
this.time = triggerTime; |
190 |
|
this.period = 0; |
191 |
< |
this.sequenceNumber = sequencer.getAndIncrement(); |
191 |
> |
this.sequenceNumber = sequenceNumber; |
192 |
|
} |
193 |
|
|
194 |
|
/** |
196 |
|
* trigger time and period. |
197 |
|
*/ |
198 |
|
ScheduledFutureTask(Runnable r, V result, long triggerTime, |
199 |
< |
long period) { |
199 |
> |
long period, long sequenceNumber) { |
200 |
|
super(r, result); |
201 |
|
this.time = triggerTime; |
202 |
|
this.period = period; |
203 |
< |
this.sequenceNumber = sequencer.getAndIncrement(); |
203 |
> |
this.sequenceNumber = sequenceNumber; |
204 |
|
} |
205 |
|
|
206 |
|
/** |
207 |
|
* Creates a one-shot action with given nanoTime-based trigger time. |
208 |
|
*/ |
209 |
< |
ScheduledFutureTask(Callable<V> callable, long triggerTime) { |
209 |
> |
ScheduledFutureTask(Callable<V> callable, long triggerTime, |
210 |
> |
long sequenceNumber) { |
211 |
|
super(callable); |
212 |
|
this.time = triggerTime; |
213 |
|
this.period = 0; |
214 |
< |
this.sequenceNumber = sequencer.getAndIncrement(); |
214 |
> |
this.sequenceNumber = sequenceNumber; |
215 |
|
} |
216 |
|
|
217 |
|
public long getDelay(TimeUnit unit) { |
531 |
|
throw new NullPointerException(); |
532 |
|
RunnableScheduledFuture<Void> t = decorateTask(command, |
533 |
|
new ScheduledFutureTask<Void>(command, null, |
534 |
< |
triggerTime(delay, unit))); |
534 |
> |
triggerTime(delay, unit), |
535 |
> |
sequencer.getAndIncrement())); |
536 |
|
delayedExecute(t); |
537 |
|
return t; |
538 |
|
} |
548 |
|
throw new NullPointerException(); |
549 |
|
RunnableScheduledFuture<V> t = decorateTask(callable, |
550 |
|
new ScheduledFutureTask<V>(callable, |
551 |
< |
triggerTime(delay, unit))); |
551 |
> |
triggerTime(delay, unit), |
552 |
> |
sequencer.getAndIncrement())); |
553 |
|
delayedExecute(t); |
554 |
|
return t; |
555 |
|
} |
571 |
|
new ScheduledFutureTask<Void>(command, |
572 |
|
null, |
573 |
|
triggerTime(initialDelay, unit), |
574 |
< |
unit.toNanos(period)); |
574 |
> |
unit.toNanos(period), |
575 |
> |
sequencer.getAndIncrement()); |
576 |
|
RunnableScheduledFuture<Void> t = decorateTask(command, sft); |
577 |
|
sft.outerTask = t; |
578 |
|
delayedExecute(t); |
596 |
|
new ScheduledFutureTask<Void>(command, |
597 |
|
null, |
598 |
|
triggerTime(initialDelay, unit), |
599 |
< |
unit.toNanos(-delay)); |
599 |
> |
unit.toNanos(-delay), |
600 |
> |
sequencer.getAndIncrement()); |
601 |
|
RunnableScheduledFuture<Void> t = decorateTask(command, sft); |
602 |
|
sft.outerTask = t; |
603 |
|
delayedExecute(t); |