public class org.eclipse.jetty.util.thread.strategy.ProduceConsume implements org.eclipse.jetty.util.thread.ExecutionStrategy, java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.eclipse.jetty.util.thread.strategy.ProduceConsume
super_class: java.lang.Object
{
private static final org.eclipse.jetty.util.log.Logger LOG;
descriptor: Lorg/eclipse/jetty/util/log/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final org.eclipse.jetty.util.thread.Locker _locker;
descriptor: Lorg/eclipse/jetty/util/thread/Locker;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.eclipse.jetty.util.thread.ExecutionStrategy$Producer _producer;
descriptor: Lorg/eclipse/jetty/util/thread/ExecutionStrategy$Producer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.Executor _executor;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private org.eclipse.jetty.util.thread.strategy.ProduceConsume$State _state;
descriptor: Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
flags: (0x0002) ACC_PRIVATE
private static volatile int[] $SWITCH_TABLE$org$eclipse$jetty$util$thread$strategy$ProduceConsume$State;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/eclipse/jetty/util/thread/strategy/ExecuteProduceConsume;
invokestatic org.eclipse.jetty.util.log.Log.getLogger:(Ljava/lang/Class;)Lorg/eclipse/jetty/util/log/Logger;
putstatic org.eclipse.jetty.util.thread.strategy.ProduceConsume.LOG:Lorg/eclipse/jetty/util/log/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.eclipse.jetty.util.thread.ExecutionStrategy$Producer, java.util.concurrent.Executor);
descriptor: (Lorg/eclipse/jetty/util/thread/ExecutionStrategy$Producer;Ljava/util/concurrent/Executor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new org.eclipse.jetty.util.thread.Locker
dup
invokespecial org.eclipse.jetty.util.thread.Locker.<init>:()V
putfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._locker:Lorg/eclipse/jetty/util/thread/Locker;
2: aload 0
getstatic org.eclipse.jetty.util.thread.strategy.ProduceConsume$State.IDLE:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
putfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._state:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
3: aload 0
aload 1
putfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._producer:Lorg/eclipse/jetty/util/thread/ExecutionStrategy$Producer;
4: aload 0
aload 2
putfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._executor:Ljava/util/concurrent/Executor;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume;
0 6 1 producer Lorg/eclipse/jetty/util/thread/ExecutionStrategy$Producer;
0 6 2 executor Ljava/util/concurrent/Executor;
MethodParameters:
Name Flags
producer
executor
public void produce();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: aload 0
getfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._locker:Lorg/eclipse/jetty/util/thread/Locker;
invokevirtual org.eclipse.jetty.util.thread.Locker.lock:()Lorg/eclipse/jetty/util/thread/Locker$Lock;
astore 3
start local 3 2: invokestatic org.eclipse.jetty.util.thread.strategy.ProduceConsume.$SWITCH_TABLE$org$eclipse$jetty$util$thread$strategy$ProduceConsume$State:()[I
aload 0
getfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._state:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
invokevirtual org.eclipse.jetty.util.thread.strategy.ProduceConsume$State.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 3
2: 5
3: 5
default: 8
}
3: StackMap locals: java.lang.Throwable java.lang.Throwable org.eclipse.jetty.util.thread.Locker$Lock
StackMap stack:
aload 0
getstatic org.eclipse.jetty.util.thread.strategy.ProduceConsume$State.PRODUCE:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
putfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._state:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
4: goto 9
5: StackMap locals:
StackMap stack:
aload 0
getstatic org.eclipse.jetty.util.thread.strategy.ProduceConsume$State.EXECUTE:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
putfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._state:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
6: aload 3
ifnull 7
aload 3
invokevirtual org.eclipse.jetty.util.thread.Locker$Lock.close:()V
7: StackMap locals:
StackMap stack:
return
8: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
aload 0
getfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._state:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
invokevirtual org.eclipse.jetty.util.thread.strategy.ProduceConsume$State.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
aload 3
ifnull 15
aload 3
invokevirtual org.eclipse.jetty.util.thread.Locker$Lock.close:()V
goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 1
aload 3
ifnull 11
aload 3
invokevirtual org.eclipse.jetty.util.thread.Locker$Lock.close:()V
end local 3 StackMap locals:
StackMap stack:
11: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 2
aload 1
ifnonnull 13
aload 2
astore 1
goto 14
StackMap locals:
StackMap stack:
13: aload 1
aload 2
if_acmpeq 14
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 1
athrow
15: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._producer:Lorg/eclipse/jetty/util/thread/ExecutionStrategy$Producer;
invokeinterface org.eclipse.jetty.util.thread.ExecutionStrategy$Producer.produce:()Ljava/lang/Runnable;
astore 1
start local 1 16: getstatic org.eclipse.jetty.util.thread.strategy.ProduceConsume.LOG:Lorg/eclipse/jetty/util/log/Logger;
invokeinterface org.eclipse.jetty.util.log.Logger.isDebugEnabled:()Z
ifeq 18
17: getstatic org.eclipse.jetty.util.thread.strategy.ProduceConsume.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "{} produced {}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._producer:Lorg/eclipse/jetty/util/thread/ExecutionStrategy$Producer;
aastore
dup
iconst_1
aload 1
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
18: StackMap locals: java.lang.Runnable
StackMap stack:
aload 1
ifnonnull 36
19: aconst_null
astore 2
aconst_null
astore 3
20: aload 0
getfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._locker:Lorg/eclipse/jetty/util/thread/Locker;
invokevirtual org.eclipse.jetty.util.thread.Locker.lock:()Lorg/eclipse/jetty/util/thread/Locker$Lock;
astore 4
start local 4 21: invokestatic org.eclipse.jetty.util.thread.strategy.ProduceConsume.$SWITCH_TABLE$org$eclipse$jetty$util$thread$strategy$ProduceConsume$State:()[I
aload 0
getfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._state:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
invokevirtual org.eclipse.jetty.util.thread.strategy.ProduceConsume$State.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 22
2: 23
3: 26
default: 29
}
22: StackMap locals: java.lang.Throwable java.lang.Throwable org.eclipse.jetty.util.thread.Locker$Lock
StackMap stack:
new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
23: StackMap locals:
StackMap stack:
aload 0
getstatic org.eclipse.jetty.util.thread.strategy.ProduceConsume$State.IDLE:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
putfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._state:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
24: aload 4
ifnull 25
aload 4
invokevirtual org.eclipse.jetty.util.thread.Locker$Lock.close:()V
25: StackMap locals:
StackMap stack:
return
26: StackMap locals:
StackMap stack:
aload 0
getstatic org.eclipse.jetty.util.thread.strategy.ProduceConsume$State.PRODUCE:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
putfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._state:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
27: aload 4
ifnull 15
aload 4
invokevirtual org.eclipse.jetty.util.thread.Locker$Lock.close:()V
28: goto 15
29: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
aload 0
getfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._state:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
invokevirtual org.eclipse.jetty.util.thread.strategy.ProduceConsume$State.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
30: astore 2
31: aload 4
ifnull 32
aload 4
invokevirtual org.eclipse.jetty.util.thread.Locker$Lock.close:()V
end local 4 StackMap locals:
StackMap stack:
32: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
33: astore 3
aload 2
ifnonnull 34
aload 3
astore 2
goto 35
StackMap locals:
StackMap stack:
34: aload 2
aload 3
if_acmpeq 35
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
35: aload 2
athrow
36: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.lang.Runnable.run:()V
end local 1 37: goto 15
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume;
2 11 3 lock Lorg/eclipse/jetty/util/thread/Locker$Lock;
16 37 1 task Ljava/lang/Runnable;
21 32 4 lock Lorg/eclipse/jetty/util/thread/Locker$Lock;
Exception table:
from to target type
2 6 10 any
8 9 10 any
1 7 12 any
8 12 12 any
21 24 30 any
26 27 30 any
29 30 30 any
20 25 33 any
26 28 33 any
29 33 33 any
public void dispatch();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.util.thread.strategy.ProduceConsume._executor:Ljava/util/concurrent/Executor;
aload 0
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume;
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.eclipse.jetty.util.thread.strategy.ProduceConsume.produce:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume;
static int[] $SWITCH_TABLE$org$eclipse$jetty$util$thread$strategy$ProduceConsume$State();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.eclipse.jetty.util.thread.strategy.ProduceConsume.$SWITCH_TABLE$org$eclipse$jetty$util$thread$strategy$ProduceConsume$State:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.eclipse.jetty.util.thread.strategy.ProduceConsume$State.values:()[Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.eclipse.jetty.util.thread.strategy.ProduceConsume$State.EXECUTE:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
invokevirtual org.eclipse.jetty.util.thread.strategy.ProduceConsume$State.ordinal:()I
iconst_3
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.eclipse.jetty.util.thread.strategy.ProduceConsume$State.IDLE:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
invokevirtual org.eclipse.jetty.util.thread.strategy.ProduceConsume$State.ordinal:()I
iconst_1
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.eclipse.jetty.util.thread.strategy.ProduceConsume$State.PRODUCE:Lorg/eclipse/jetty/util/thread/strategy/ProduceConsume$State;
invokevirtual org.eclipse.jetty.util.thread.strategy.ProduceConsume$State.ordinal:()I
iconst_2
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
dup
putstatic org.eclipse.jetty.util.thread.strategy.ProduceConsume.$SWITCH_TABLE$org$eclipse$jetty$util$thread$strategy$ProduceConsume$State:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
}
SourceFile: "ProduceConsume.java"
NestMembers:
org.eclipse.jetty.util.thread.strategy.ProduceConsume$State
InnerClasses:
public abstract Producer = org.eclipse.jetty.util.thread.ExecutionStrategy$Producer of org.eclipse.jetty.util.thread.ExecutionStrategy
public Lock = org.eclipse.jetty.util.thread.Locker$Lock of org.eclipse.jetty.util.thread.Locker
private final State = org.eclipse.jetty.util.thread.strategy.ProduceConsume$State of org.eclipse.jetty.util.thread.strategy.ProduceConsume