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 105
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 110
goto 42
1: .line 111
StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lstore 1 /* currentTimeMillis */
start local 1 // long currentTimeMillis
2: .line 113
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 31
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 114
aload 3 /* delayQueue */
getfield org.glassfish.grizzly.utils.DelayedExecutor$DelayQueue.queue:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.isEmpty:()Z
ifeq 5
goto 31
5: .line 116
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
6: .line 118
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
7: goto 30
8: .line 119
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
9: .line 120
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
10: .line 122
lload 8 /* timeoutMillis */
ldc -1
lcmp
ifne 18
11: .line 123
aload 6 /* it */
invokeinterface java.util.Iterator.remove:()V
12: .line 124
lload 8 /* timeoutMillis */
13: .line 125
aload 5 /* resolver */
aload 7 /* element */
invokeinterface org.glassfish.grizzly.utils.DelayedExecutor$Resolver.getTimeoutMillis:(Ljava/lang/Object;)J
14: .line 124
invokestatic org.glassfish.grizzly.utils.DelayedExecutor.wasModified:(JJ)Z
15: .line 125
ifeq 30
16: .line 126
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
17: .line 128
goto 30
StackMap locals: java.lang.Object long
StackMap stack:
18: lload 1 /* currentTimeMillis */
lload 8 /* timeoutMillis */
lsub
lconst_0
lcmp
iflt 30
19: .line 129
aload 6 /* it */
invokeinterface java.util.Iterator.remove:()V
20: .line 130
lload 8 /* timeoutMillis */
21: .line 131
aload 5 /* resolver */
aload 7 /* element */
invokeinterface org.glassfish.grizzly.utils.DelayedExecutor$Resolver.getTimeoutMillis:(Ljava/lang/Object;)J
22: .line 130
invokestatic org.glassfish.grizzly.utils.DelayedExecutor.wasModified:(JJ)Z
23: .line 131
ifeq 26
24: .line 132
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
25: .line 133
goto 30
26: .line 135
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 30
27: .line 136
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
28: .line 138
goto 30
StackMap locals:
StackMap stack: java.lang.Exception
29: pop
end local 8 // long timeoutMillis
end local 7 // java.lang.Object element
30: .line 118
StackMap locals:
StackMap stack:
aload 6 /* it */
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
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
31: .line 113
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
32: .line 145
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
33: .line 146
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 35
aload 3
monitorexit
34: return
35: .line 149
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
36: .line 150
goto 38
StackMap locals:
StackMap stack: java.lang.InterruptedException
37: pop
38: .line 145
StackMap locals:
StackMap stack:
aload 3
monitorexit
39: goto 42
StackMap locals:
StackMap stack: java.lang.Throwable
40: aload 3
monitorexit
41: athrow
end local 1 // long currentTimeMillis
42: .line 110
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
43: .line 154
return
end local 0 // org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable this
LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lorg/glassfish/grizzly/utils/DelayedExecutor$DelayedRunnable;
2 42 1 currentTimeMillis J
4 31 3 delayQueue Lorg/glassfish/grizzly/utils/DelayedExecutor$DelayQueue;
6 31 5 resolver Lorg/glassfish/grizzly/utils/DelayedExecutor$Resolver;
7 31 6 it Ljava/util/Iterator;
9 30 7 element Ljava/lang/Object;
10 30 8 timeoutMillis J
Exception table:
from to target type
26 28 29 Class java.lang.Exception
35 36 37 Class java.lang.InterruptedException
33 34 40 any
35 39 40 any
40 41 40 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