class ch.qos.logback.core.AsyncAppenderBase$Worker extends java.lang.Thread
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: ch.qos.logback.core.AsyncAppenderBase$Worker
super_class: java.lang.Thread
{
final ch.qos.logback.core.AsyncAppenderBase this$0;
descriptor: Lch/qos/logback/core/AsyncAppenderBase;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(ch.qos.logback.core.AsyncAppenderBase);
descriptor: (Lch/qos/logback/core/AsyncAppenderBase;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // ch.qos.logback.core.AsyncAppenderBase$Worker this
0: .line 280
aload 0 /* this */
aload 1
putfield ch.qos.logback.core.AsyncAppenderBase$Worker.this$0:Lch/qos/logback/core/AsyncAppenderBase;
aload 0 /* this */
invokespecial java.lang.Thread.<init>:()V
return
end local 0 // ch.qos.logback.core.AsyncAppenderBase$Worker this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lch/qos/logback/core/AsyncAppenderBase$Worker;
MethodParameters:
Name Flags
this$0 final
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=1
start local 0 // ch.qos.logback.core.AsyncAppenderBase$Worker this
0: .line 283
aload 0 /* this */
getfield ch.qos.logback.core.AsyncAppenderBase$Worker.this$0:Lch/qos/logback/core/AsyncAppenderBase;
astore 1 /* parent */
start local 1 // ch.qos.logback.core.AsyncAppenderBase parent
1: .line 284
aload 1 /* parent */
getfield ch.qos.logback.core.AsyncAppenderBase.aai:Lch/qos/logback/core/spi/AppenderAttachableImpl;
astore 2 /* aai */
start local 2 // ch.qos.logback.core.spi.AppenderAttachableImpl aai
2: .line 287
goto 8
3: .line 289
StackMap locals: ch.qos.logback.core.AsyncAppenderBase ch.qos.logback.core.spi.AppenderAttachableImpl
StackMap stack:
aload 1 /* parent */
getfield ch.qos.logback.core.AsyncAppenderBase.blockingQueue:Ljava/util/concurrent/BlockingQueue;
invokeinterface java.util.concurrent.BlockingQueue.take:()Ljava/lang/Object;
astore 3 /* e */
start local 3 // java.lang.Object e
4: .line 290
aload 2 /* aai */
aload 3 /* e */
invokevirtual ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders:(Ljava/lang/Object;)I
pop
end local 3 // java.lang.Object e
5: .line 291
goto 8
StackMap locals:
StackMap stack: java.lang.InterruptedException
6: pop
7: .line 292
goto 9
8: .line 287
StackMap locals:
StackMap stack:
aload 1 /* parent */
invokevirtual ch.qos.logback.core.AsyncAppenderBase.isStarted:()Z
ifne 3
9: .line 296
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield ch.qos.logback.core.AsyncAppenderBase$Worker.this$0:Lch/qos/logback/core/AsyncAppenderBase;
ldc "Worker thread will flush remaining events before exiting. "
invokevirtual ch.qos.logback.core.AsyncAppenderBase.addInfo:(Ljava/lang/String;)V
10: .line 298
aload 1 /* parent */
getfield ch.qos.logback.core.AsyncAppenderBase.blockingQueue:Ljava/util/concurrent/BlockingQueue;
invokeinterface java.util.concurrent.BlockingQueue.iterator:()Ljava/util/Iterator;
astore 4
goto 14
StackMap locals: ch.qos.logback.core.AsyncAppenderBase$Worker ch.qos.logback.core.AsyncAppenderBase ch.qos.logback.core.spi.AppenderAttachableImpl top java.util.Iterator
StackMap stack:
11: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Object
astore 3 /* e */
start local 3 // java.lang.Object e
12: .line 299
aload 2 /* aai */
aload 3 /* e */
invokevirtual ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders:(Ljava/lang/Object;)I
pop
13: .line 300
aload 1 /* parent */
getfield ch.qos.logback.core.AsyncAppenderBase.blockingQueue:Ljava/util/concurrent/BlockingQueue;
aload 3 /* e */
invokeinterface java.util.concurrent.BlockingQueue.remove:(Ljava/lang/Object;)Z
pop
end local 3 // java.lang.Object e
14: .line 298
StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
15: .line 303
aload 2 /* aai */
invokevirtual ch.qos.logback.core.spi.AppenderAttachableImpl.detachAndStopAllAppenders:()V
16: .line 304
return
end local 2 // ch.qos.logback.core.spi.AppenderAttachableImpl aai
end local 1 // ch.qos.logback.core.AsyncAppenderBase parent
end local 0 // ch.qos.logback.core.AsyncAppenderBase$Worker this
LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lch/qos/logback/core/AsyncAppenderBase$Worker;
1 17 1 parent Lch/qos/logback/core/AsyncAppenderBase<TE;>;
2 17 2 aai Lch/qos/logback/core/spi/AppenderAttachableImpl<TE;>;
4 5 3 e TE;
12 14 3 e TE;
Exception table:
from to target type
3 5 6 Class java.lang.InterruptedException
}
SourceFile: "AsyncAppenderBase.java"
NestHost: ch.qos.logback.core.AsyncAppenderBase
InnerClasses:
Worker = ch.qos.logback.core.AsyncAppenderBase$Worker of ch.qos.logback.core.AsyncAppenderBase