final class io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache extends io.netty.util.concurrent.FastThreadLocal<io.netty.buffer.PoolThreadCache>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache
super_class: io.netty.util.concurrent.FastThreadLocal
{
private final boolean useCacheForAllThreads;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final io.netty.buffer.PooledByteBufAllocator this$0;
descriptor: Lio/netty/buffer/PooledByteBufAllocator;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(io.netty.buffer.PooledByteBufAllocator, boolean);
descriptor: (Lio/netty/buffer/PooledByteBufAllocator;Z)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache.this$0:Lio/netty/buffer/PooledByteBufAllocator;
aload 0
invokespecial io.netty.util.concurrent.FastThreadLocal.<init>:()V
1: aload 0
iload 2
putfield io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache.useCacheForAllThreads:Z
2: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/buffer/PooledByteBufAllocator$PoolThreadLocalCache;
0 3 2 useCacheForAllThreads Z
MethodParameters:
Name Flags
this$0 final
useCacheForAllThreads
protected synchronized io.netty.buffer.PoolThreadCache initialValue();
descriptor: ()Lio/netty/buffer/PoolThreadCache;
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=9, locals=4, args_size=1
start local 0 0: aload 0
aload 0
getfield io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache.this$0:Lio/netty/buffer/PooledByteBufAllocator;
getfield io.netty.buffer.PooledByteBufAllocator.heapArenas:[Lio/netty/buffer/PoolArena;
invokevirtual io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache.leastUsedArena:([Lio/netty/buffer/PoolArena;)Lio/netty/buffer/PoolArena;
astore 1
start local 1 1: aload 0
aload 0
getfield io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache.this$0:Lio/netty/buffer/PooledByteBufAllocator;
getfield io.netty.buffer.PooledByteBufAllocator.directArenas:[Lio/netty/buffer/PoolArena;
invokevirtual io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache.leastUsedArena:([Lio/netty/buffer/PoolArena;)Lio/netty/buffer/PoolArena;
astore 2
start local 2 2: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 3
start local 3 3: aload 0
getfield io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache.useCacheForAllThreads:Z
ifne 4
aload 3
instanceof io.netty.util.concurrent.FastThreadLocalThread
ifeq 8
4: StackMap locals: io.netty.buffer.PoolArena io.netty.buffer.PoolArena java.lang.Thread
StackMap stack:
new io.netty.buffer.PoolThreadCache
dup
5: aload 1
aload 2
aload 0
getfield io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache.this$0:Lio/netty/buffer/PooledByteBufAllocator;
getfield io.netty.buffer.PooledByteBufAllocator.tinyCacheSize:I
aload 0
getfield io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache.this$0:Lio/netty/buffer/PooledByteBufAllocator;
getfield io.netty.buffer.PooledByteBufAllocator.smallCacheSize:I
aload 0
getfield io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache.this$0:Lio/netty/buffer/PooledByteBufAllocator;
getfield io.netty.buffer.PooledByteBufAllocator.normalCacheSize:I
6: getstatic io.netty.buffer.PooledByteBufAllocator.DEFAULT_MAX_CACHED_BUFFER_CAPACITY:I
getstatic io.netty.buffer.PooledByteBufAllocator.DEFAULT_CACHE_TRIM_INTERVAL:I
7: invokespecial io.netty.buffer.PoolThreadCache.<init>:(Lio/netty/buffer/PoolArena;Lio/netty/buffer/PoolArena;IIIII)V
areturn
8: StackMap locals:
StackMap stack:
new io.netty.buffer.PoolThreadCache
dup
aload 1
aload 2
iconst_0
iconst_0
iconst_0
iconst_0
iconst_0
invokespecial io.netty.buffer.PoolThreadCache.<init>:(Lio/netty/buffer/PoolArena;Lio/netty/buffer/PoolArena;IIIII)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/netty/buffer/PooledByteBufAllocator$PoolThreadLocalCache;
1 9 1 heapArena Lio/netty/buffer/PoolArena<[B>;
2 9 2 directArena Lio/netty/buffer/PoolArena<Ljava/nio/ByteBuffer;>;
3 9 3 current Ljava/lang/Thread;
protected void onRemoval(io.netty.buffer.PoolThreadCache);
descriptor: (Lio/netty/buffer/PoolThreadCache;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual io.netty.buffer.PoolThreadCache.free:()V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/buffer/PooledByteBufAllocator$PoolThreadLocalCache;
0 2 1 threadCache Lio/netty/buffer/PoolThreadCache;
MethodParameters:
Name Flags
threadCache
private <T> io.netty.buffer.PoolArena<T> leastUsedArena(io.netty.buffer.PoolArena<T>[]);
descriptor: ([Lio/netty/buffer/PoolArena;)Lio/netty/buffer/PoolArena;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
arraylength
ifne 2
1: StackMap locals:
StackMap stack:
aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 1
iconst_0
aaload
astore 2
start local 2 3: iconst_1
istore 3
start local 3 4: goto 9
5: StackMap locals: io.netty.buffer.PoolArena int
StackMap stack:
aload 1
iload 3
aaload
astore 4
start local 4 6: aload 4
getfield io.netty.buffer.PoolArena.numThreadCaches:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
aload 2
getfield io.netty.buffer.PoolArena.numThreadCaches:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
if_icmpge 8
7: aload 4
astore 2
end local 4 8: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
9: iload 3
aload 1
arraylength
if_icmplt 5
end local 3 10: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/netty/buffer/PooledByteBufAllocator$PoolThreadLocalCache;
0 11 1 arenas [Lio/netty/buffer/PoolArena;
3 11 2 minArena Lio/netty/buffer/PoolArena<TT;>;
4 10 3 i I
6 8 4 arena Lio/netty/buffer/PoolArena<TT;>;
Signature: <T:Ljava/lang/Object;>([Lio/netty/buffer/PoolArena<TT;>;)Lio/netty/buffer/PoolArena<TT;>;
MethodParameters:
Name Flags
arenas
protected void onRemoval(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast io.netty.buffer.PoolThreadCache
invokevirtual io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache.onRemoval:(Lio/netty/buffer/PoolThreadCache;)V
return
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
protected java.lang.Object initialValue();
descriptor: ()Ljava/lang/Object;
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache.initialValue:()Lio/netty/buffer/PoolThreadCache;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
Signature: Lio/netty/util/concurrent/FastThreadLocal<Lio/netty/buffer/PoolThreadCache;>;
SourceFile: "PooledByteBufAllocator.java"
NestHost: io.netty.buffer.PooledByteBufAllocator
InnerClasses:
final PoolThreadLocalCache = io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache of io.netty.buffer.PooledByteBufAllocator