public class sun.misc.Timer
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.misc.Timer
super_class: java.lang.Object
{
public sun.misc.Timeable owner;
descriptor: Lsun/misc/Timeable;
flags: (0x0001) ACC_PUBLIC
long interval;
descriptor: J
flags: (0x0000)
long sleepUntil;
descriptor: J
flags: (0x0000)
long remainingTime;
descriptor: J
flags: (0x0000)
boolean regular;
descriptor: Z
flags: (0x0000)
boolean stopped;
descriptor: Z
flags: (0x0000)
sun.misc.Timer next;
descriptor: Lsun/misc/Timer;
flags: (0x0000)
static sun.misc.TimerThread timerThread;
descriptor: Lsun/misc/TimerThread;
flags: (0x0008) ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: aconst_null
putstatic sun.misc.Timer.timerThread:Lsun/misc/TimerThread;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(sun.misc.Timeable, long);
descriptor: (Lsun/misc/Timeable;J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield sun.misc.Timer.owner:Lsun/misc/Timeable;
2: aload 0
lload 2
putfield sun.misc.Timer.interval:J
3: aload 0
lload 2
putfield sun.misc.Timer.remainingTime:J
4: aload 0
iconst_1
putfield sun.misc.Timer.regular:Z
5: aload 0
invokestatic java.lang.System.currentTimeMillis:()J
putfield sun.misc.Timer.sleepUntil:J
6: aload 0
iconst_1
putfield sun.misc.Timer.stopped:Z
7: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
dup
astore 4
monitorenter
8: getstatic sun.misc.Timer.timerThread:Lsun/misc/TimerThread;
ifnonnull 10
9: new sun.misc.TimerThread
dup
invokespecial sun.misc.TimerThread.<init>:()V
putstatic sun.misc.Timer.timerThread:Lsun/misc/TimerThread;
10: StackMap locals: sun.misc.Timer sun.misc.Timeable long java.lang.Class
StackMap stack:
aload 4
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 4
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/misc/Timer;
0 15 1 owner Lsun/misc/Timeable;
0 15 2 interval J
Exception table:
from to target type
8 11 12 any
12 13 12 any
MethodParameters:
Name Flags
owner
interval
public synchronized boolean isStopped();
descriptor: ()Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.misc.Timer.stopped:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/misc/Timer;
public void stop();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=1
start local 0 0: invokestatic java.lang.System.currentTimeMillis:()J
lstore 1
start local 1 1: getstatic sun.misc.Timer.timerThread:Lsun/misc/TimerThread;
dup
astore 3
monitorenter
2: aload 0
dup
astore 4
monitorenter
3: aload 0
getfield sun.misc.Timer.stopped:Z
ifne 8
4: aload 0
invokestatic sun.misc.TimerThread.dequeue:(Lsun/misc/Timer;)Z
pop
5: aload 0
lconst_0
aload 0
getfield sun.misc.Timer.sleepUntil:J
lload 1
lsub
invokestatic java.lang.Math.max:(JJ)J
putfield sun.misc.Timer.remainingTime:J
6: aload 0
lload 1
putfield sun.misc.Timer.sleepUntil:J
7: aload 0
iconst_1
putfield sun.misc.Timer.stopped:Z
8: StackMap locals: long sun.misc.TimerThread sun.misc.Timer
StackMap stack:
aload 4
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 4
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
aload 3
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 3
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/misc/Timer;
1 17 1 now J
Exception table:
from to target type
3 9 10 any
10 11 10 any
2 13 14 any
14 15 14 any
public void cont();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=1
start local 0 0: getstatic sun.misc.Timer.timerThread:Lsun/misc/TimerThread;
dup
astore 1
monitorenter
1: aload 0
dup
astore 2
monitorenter
2: aload 0
getfield sun.misc.Timer.stopped:Z
ifeq 8
3: aload 0
aload 0
getfield sun.misc.Timer.sleepUntil:J
lconst_1
ladd
4: invokestatic java.lang.System.currentTimeMillis:()J
aload 0
getfield sun.misc.Timer.remainingTime:J
ladd
5: invokestatic java.lang.Math.max:(JJ)J
putfield sun.misc.Timer.sleepUntil:J
6: aload 0
invokestatic sun.misc.TimerThread.enqueue:(Lsun/misc/Timer;)V
7: aload 0
iconst_0
putfield sun.misc.Timer.stopped:Z
8: StackMap locals: sun.misc.TimerThread sun.misc.Timer
StackMap stack:
aload 2
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 2
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
aload 1
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 1
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/misc/Timer;
Exception table:
from to target type
2 9 10 any
10 11 10 any
1 13 14 any
14 15 14 any
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: getstatic sun.misc.Timer.timerThread:Lsun/misc/TimerThread;
dup
astore 1
monitorenter
1: aload 0
dup
astore 2
monitorenter
2: aload 0
aload 0
getfield sun.misc.Timer.interval:J
invokevirtual sun.misc.Timer.setRemainingTime:(J)V
3: aload 2
monitorexit
4: goto 7
StackMap locals: sun.misc.Timer sun.misc.TimerThread sun.misc.Timer
StackMap stack: java.lang.Throwable
5: aload 2
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
aload 1
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 1
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/misc/Timer;
Exception table:
from to target type
2 4 5 any
5 6 5 any
1 8 9 any
9 10 9 any
public synchronized long getStopTime();
descriptor: ()J
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.misc.Timer.sleepUntil:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/misc/Timer;
public synchronized long getInterval();
descriptor: ()J
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.misc.Timer.interval:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/misc/Timer;
public synchronized void setInterval(long);
descriptor: (J)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
putfield sun.misc.Timer.interval:J
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/misc/Timer;
0 2 1 interval J
MethodParameters:
Name Flags
interval
public synchronized long getRemainingTime();
descriptor: ()J
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.misc.Timer.remainingTime:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/misc/Timer;
public void setRemainingTime(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: getstatic sun.misc.Timer.timerThread:Lsun/misc/TimerThread;
dup
astore 3
monitorenter
1: aload 0
dup
astore 4
monitorenter
2: aload 0
getfield sun.misc.Timer.stopped:Z
ifeq 5
3: aload 0
lload 1
putfield sun.misc.Timer.remainingTime:J
4: goto 8
5: StackMap locals: sun.misc.TimerThread sun.misc.Timer
StackMap stack:
aload 0
invokevirtual sun.misc.Timer.stop:()V
6: aload 0
lload 1
putfield sun.misc.Timer.remainingTime:J
7: aload 0
invokevirtual sun.misc.Timer.cont:()V
8: StackMap locals:
StackMap stack:
aload 4
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 4
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
aload 3
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 3
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/misc/Timer;
0 17 1 time J
Exception table:
from to target type
2 9 10 any
10 11 10 any
1 13 14 any
14 15 14 any
MethodParameters:
Name Flags
time
public synchronized void setRegular(boolean);
descriptor: (Z)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield sun.misc.Timer.regular:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/misc/Timer;
0 2 1 regular Z
MethodParameters:
Name Flags
regular
protected java.lang.Thread getTimerThread();
descriptor: ()Ljava/lang/Thread;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic sun.misc.TimerThread.timerThread:Lsun/misc/TimerThread;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/misc/Timer;
}
SourceFile: "Timer.java"