src/java.desktop/share/classes/javax/swing/TimerQueue.java

Print this page




 250          * guarantee FIFO order among tied entries.
 251          */
 252         private static final AtomicLong sequencer = new AtomicLong(0);
 253 
 254         /** Sequence number to break ties FIFO */
 255         private final long sequenceNumber;
 256 
 257 
 258         /** The time the task is enabled to execute in nanoTime units */
 259         private volatile long time;
 260 
 261         private final Timer timer;
 262 
 263         DelayedTimer(Timer timer, long nanos) {
 264             this.timer = timer;
 265             time = nanos;
 266             sequenceNumber = sequencer.getAndIncrement();
 267         }
 268 
 269 
 270         final public long getDelay(TimeUnit unit) {
 271             return  unit.convert(time - now(), TimeUnit.NANOSECONDS);
 272         }
 273 
 274         final void setTime(long nanos) {
 275             time = nanos;
 276         }
 277 
 278         final Timer getTimer() {
 279             return timer;
 280         }
 281 
 282         public int compareTo(Delayed other) {
 283             if (other == this) { // compare zero ONLY if same object
 284                 return 0;
 285             }
 286             if (other instanceof DelayedTimer) {
 287                 DelayedTimer x = (DelayedTimer)other;
 288                 long diff = time - x.time;
 289                 if (diff < 0) {
 290                     return -1;


 250          * guarantee FIFO order among tied entries.
 251          */
 252         private static final AtomicLong sequencer = new AtomicLong(0);
 253 
 254         /** Sequence number to break ties FIFO */
 255         private final long sequenceNumber;
 256 
 257 
 258         /** The time the task is enabled to execute in nanoTime units */
 259         private volatile long time;
 260 
 261         private final Timer timer;
 262 
 263         DelayedTimer(Timer timer, long nanos) {
 264             this.timer = timer;
 265             time = nanos;
 266             sequenceNumber = sequencer.getAndIncrement();
 267         }
 268 
 269 
 270         public final long getDelay(TimeUnit unit) {
 271             return  unit.convert(time - now(), TimeUnit.NANOSECONDS);
 272         }
 273 
 274         final void setTime(long nanos) {
 275             time = nanos;
 276         }
 277 
 278         final Timer getTimer() {
 279             return timer;
 280         }
 281 
 282         public int compareTo(Delayed other) {
 283             if (other == this) { // compare zero ONLY if same object
 284                 return 0;
 285             }
 286             if (other instanceof DelayedTimer) {
 287                 DelayedTimer x = (DelayedTimer)other;
 288                 long diff = time - x.time;
 289                 if (diff < 0) {
 290                     return -1;