class org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable
super_class: java.lang.Object
{
final org.glassfish.grizzly.utils.DelayedExecutor this$0;
descriptor: Lorg/glassfish/grizzly/utils/DelayedExecutor;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(org.glassfish.grizzly.utils.DelayedExecutor);
descriptor: (Lorg/glassfish/grizzly/utils/DelayedExecutor;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable this
0: .line 102
aload 0 /* this */
aload 1
putfield org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable.this$0:Lorg/glassfish/grizzly/utils/DelayedExecutor;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/glassfish/grizzly/utils/DelayedExecutor$DelayedRunnable;
MethodParameters:
Name Flags
this$0 final
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=1
start local 0 // org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable this
0: .line 107
goto 38
1: .line 108
StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lstore 1 /* currentTimeMillis */
start local 1 // long currentTimeMillis
2: .line 110
aload 0 /* this */
getfield org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable.this$0:Lorg/glassfish/grizzly/utils/DelayedExecutor;
getfield org.glassfish.grizzly.utils.DelayedExecutor.queues:Ljava/util/Queue;
invokeinterface java.util.Queue.iterator:()Ljava/util/Iterator;
astore 4
goto 26
StackMap locals: org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable long top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.glassfish.grizzly.utils.DelayedExecutor$DelayQueue
astore 3 /* delayQueue */
start local 3 // org.glassfish.grizzly.utils.DelayedExecutor$DelayQueue delayQueue
4: .line 111
aload 3 /* delayQueue */
getfield org.glassfish.grizzly.utils.DelayedExecutor$DelayQueue.queue:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.isEmpty:()Z
ifeq 6
5: .line 112
goto 26
6: .line 115
StackMap locals: org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable long org.glassfish.grizzly.utils.DelayedExecutor$DelayQueue java.util.Iterator
StackMap stack:
aload 3 /* delayQueue */
getfield org.glassfish.grizzly.utils.DelayedExecutor$DelayQueue.resolver:Lorg/glassfish/grizzly/utils/DelayedExecutor$Resolver;
astore 5 /* resolver */
start local 5 // org.glassfish.grizzly.utils.DelayedExecutor$Resolver resolver
7: .line 117
aload 3 /* delayQueue */
getfield org.glassfish.grizzly.utils.DelayedExecutor$DelayQueue.queue:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6 /* it */
start local 6 // java.util.Iterator it
8: goto 25
9: .line 118
StackMap locals: org.glassfish.grizzly.utils.DelayedExecutor$Resolver java.util.Iterator
StackMap stack:
aload 6 /* it */
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 7 /* element */
start local 7 // java.lang.Object element
10: .line 119
aload 5 /* resolver */
aload 7 /* element */
invokeinterface org.glassfish.grizzly.utils.DelayedExecutor$Resolver.getTimeoutMillis:(Ljava/lang/Object;)J
lstore 8 /* timeoutMillis */
start local 8 // long timeoutMillis
11: .line 121
lload 8 /* timeoutMillis */
ldc -1
lcmp
ifne 16
12: .line 122
aload 6 /* it */
invokeinterface java.util.Iterator.remove:()V
13: .line 123
lload 8 /* timeoutMillis */
aload 5 /* resolver */
aload 7 /* element */
invokeinterface org.glassfish.grizzly.utils.DelayedExecutor$Resolver.getTimeoutMillis:(Ljava/lang/Object;)J
invokestatic org.glassfish.grizzly.utils.DelayedExecutor.wasModified:(JJ)Z
ifeq 25
14: .line 124
aload 3 /* delayQueue */
getfield org.glassfish.grizzly.utils.DelayedExecutor$DelayQueue.queue:Ljava/util/concurrent/ConcurrentMap;
aload 7 /* element */
aload 3 /* delayQueue */
invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: .line 126
goto 25
StackMap locals: java.lang.Object long
StackMap stack:
16: lload 1 /* currentTimeMillis */
lload 8 /* timeoutMillis */
lsub
lconst_0
lcmp
iflt 25
17: .line 127
aload 6 /* it */
invokeinterface java.util.Iterator.remove:()V
18: .line 128
lload 8 /* timeoutMillis */
aload 5 /* resolver */
aload 7 /* element */
invokeinterface org.glassfish.grizzly.utils.DelayedExecutor$Resolver.getTimeoutMillis:(Ljava/lang/Object;)J
invokestatic org.glassfish.grizzly.utils.DelayedExecutor.wasModified:(JJ)Z
ifeq 21
19: .line 129
aload 3 /* delayQueue */
getfield org.glassfish.grizzly.utils.DelayedExecutor$DelayQueue.queue:Ljava/util/concurrent/ConcurrentMap;
aload 7 /* element */
aload 3 /* delayQueue */
invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
20: .line 130
goto 25
21: .line 132
StackMap locals:
StackMap stack:
aload 3 /* delayQueue */
getfield org.glassfish.grizzly.utils.DelayedExecutor$DelayQueue.worker:Lorg/glassfish/grizzly/utils/DelayedExecutor$Worker;
aload 7 /* element */
invokeinterface org.glassfish.grizzly.utils.DelayedExecutor$Worker.doWork:(Ljava/lang/Object;)Z
ifne 25
22: .line 133
aload 3 /* delayQueue */
getfield org.glassfish.grizzly.utils.DelayedExecutor$DelayQueue.queue:Ljava/util/concurrent/ConcurrentMap;
aload 7 /* element */
aload 3 /* delayQueue */
invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
23: .line 135
goto 25
StackMap locals:
StackMap stack: java.lang.Exception
24: pop
end local 8 // long timeoutMillis
end local 7 // java.lang.Object element
25: .line 117
StackMap locals:
StackMap stack:
aload 6 /* it */
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
end local 6 // java.util.Iterator it
end local 5 // org.glassfish.grizzly.utils.DelayedExecutor$Resolver resolver
end local 3 // org.glassfish.grizzly.utils.DelayedExecutor$DelayQueue delayQueue
26: .line 110
StackMap locals: org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable long top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
27: .line 142
aload 0 /* this */
getfield org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable.this$0:Lorg/glassfish/grizzly/utils/DelayedExecutor;
getfield org.glassfish.grizzly.utils.DelayedExecutor.sync:Ljava/lang/Object;
dup
astore 3
monitorenter
28: .line 143
aload 0 /* this */
getfield org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable.this$0:Lorg/glassfish/grizzly/utils/DelayedExecutor;
getfield org.glassfish.grizzly.utils.DelayedExecutor.isStarted:Z
ifne 31
29: .line 144
aload 3
monitorexit
30: return
31: .line 148
StackMap locals: org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable long java.lang.Object
StackMap stack:
aload 0 /* this */
getfield org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable.this$0:Lorg/glassfish/grizzly/utils/DelayedExecutor;
getfield org.glassfish.grizzly.utils.DelayedExecutor.sync:Ljava/lang/Object;
aload 0 /* this */
getfield org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable.this$0:Lorg/glassfish/grizzly/utils/DelayedExecutor;
getfield org.glassfish.grizzly.utils.DelayedExecutor.checkIntervalMillis:J
invokevirtual java.lang.Object.wait:(J)V
32: .line 149
goto 34
StackMap locals:
StackMap stack: java.lang.InterruptedException
33: pop
34: .line 142
StackMap locals:
StackMap stack:
aload 3
monitorexit
35: goto 38
StackMap locals:
StackMap stack: java.lang.Throwable
36: aload 3
monitorexit
37: athrow
end local 1 // long currentTimeMillis
38: .line 107
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable.this$0:Lorg/glassfish/grizzly/utils/DelayedExecutor;
getfield org.glassfish.grizzly.utils.DelayedExecutor.isStarted:Z
ifne 1
39: .line 153
return
end local 0 // org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable this
LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lorg/glassfish/grizzly/utils/DelayedExecutor$DelayedRunnable;
2 38 1 currentTimeMillis J
4 26 3 delayQueue Lorg/glassfish/grizzly/utils/DelayedExecutor$DelayQueue;
7 26 5 resolver Lorg/glassfish/grizzly/utils/DelayedExecutor$Resolver;
8 26 6 it Ljava/util/Iterator;
10 25 7 element Ljava/lang/Object;
11 25 8 timeoutMillis J
Exception table:
from to target type
21 23 24 Class java.lang.Exception
31 32 33 Class java.lang.InterruptedException
28 30 36 any
31 35 36 any
36 37 36 any
}
SourceFile: "DelayedExecutor.java"
NestHost: org.glassfish.grizzly.utils.DelayedExecutor
InnerClasses:
public DelayQueue = org.glassfish.grizzly.utils.DelayedExecutor$DelayQueue of org.glassfish.grizzly.utils.DelayedExecutor
private DelayedRunnable = org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable of org.glassfish.grizzly.utils.DelayedExecutor
public abstract Resolver = org.glassfish.grizzly.utils.DelayedExecutor$Resolver of org.glassfish.grizzly.utils.DelayedExecutor
public abstract Worker = org.glassfish.grizzly.utils.DelayedExecutor$Worker of org.glassfish.grizzly.utils.DelayedExecutor