class io.netty.util.internal.ObjectCleaner$1 implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: io.netty.util.internal.ObjectCleaner$1
super_class: java.lang.Object
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/util/internal/ObjectCleaner$1;
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 12
2: StackMap locals: int
StackMap stack:
getstatic io.netty.util.internal.ObjectCleaner.REFERENCE_QUEUE:Ljava/lang/ref/ReferenceQueue;
getstatic io.netty.util.internal.ObjectCleaner.REFERENCE_QUEUE_POLL_TIMEOUT_MS:I
i2l
invokevirtual java.lang.ref.ReferenceQueue.remove:(J)Ljava/lang/ref/Reference;
checkcast io.netty.util.internal.ObjectCleaner$AutomaticCleanerReference
astore 2
start local 2 3: goto 7
end local 2 StackMap locals:
StackMap stack: java.lang.InterruptedException
4: pop
5: iconst_1
istore 1
6: goto 12
start local 2 7: StackMap locals: io.netty.util.internal.ObjectCleaner$AutomaticCleanerReference
StackMap stack:
aload 2
ifnull 12
8: aload 2
invokevirtual io.netty.util.internal.ObjectCleaner$AutomaticCleanerReference.cleanup:()V
9: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
10: pop
11: StackMap locals:
StackMap stack:
getstatic io.netty.util.internal.ObjectCleaner.LIVE_SET:Ljava/util/Set;
aload 2
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
end local 2 12: StackMap locals:
StackMap stack:
getstatic io.netty.util.internal.ObjectCleaner.LIVE_SET:Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
ifeq 2
13: getstatic io.netty.util.internal.ObjectCleaner.CLEANER_RUNNING:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
14: getstatic io.netty.util.internal.ObjectCleaner.LIVE_SET:Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
ifne 17
getstatic io.netty.util.internal.ObjectCleaner.CLEANER_RUNNING:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifne 16
15: goto 17
16: StackMap locals:
StackMap stack:
goto 12
17: StackMap locals:
StackMap stack:
iload 1
ifeq 19
18: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
19: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lio/netty/util/internal/ObjectCleaner$1;
1 20 1 interrupted Z
3 4 2 reference Lio/netty/util/internal/ObjectCleaner$AutomaticCleanerReference;
7 12 2 reference Lio/netty/util/internal/ObjectCleaner$AutomaticCleanerReference;
Exception table:
from to target type
2 3 4 Class java.lang.InterruptedException
8 9 10 Class java.lang.Throwable
}
SourceFile: "ObjectCleaner.java"
EnclosingMethod: io.netty.util.internal.ObjectCleaner
NestHost: io.netty.util.internal.ObjectCleaner
InnerClasses:
io.netty.util.internal.ObjectCleaner$1
private final AutomaticCleanerReference = io.netty.util.internal.ObjectCleaner$AutomaticCleanerReference of io.netty.util.internal.ObjectCleaner