final class org.glassfish.grizzly.threadpool.QueueLimitedThreadPool extends org.glassfish.grizzly.threadpool.FixedThreadPool
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.glassfish.grizzly.threadpool.QueueLimitedThreadPool
super_class: org.glassfish.grizzly.threadpool.FixedThreadPool
{
private final java.util.concurrent.Semaphore queuePermits;
descriptor: Ljava/util/concurrent/Semaphore;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(org.glassfish.grizzly.threadpool.ThreadPoolConfig);
descriptor: (Lorg/glassfish/grizzly/threadpool/ThreadPoolConfig;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.glassfish.grizzly.threadpool.FixedThreadPool.<init>:(Lorg/glassfish/grizzly/threadpool/ThreadPoolConfig;)V
1: aload 1
invokevirtual org.glassfish.grizzly.threadpool.ThreadPoolConfig.getQueueLimit:()I
ifge 3
2: new java.lang.IllegalArgumentException
dup
ldc "maxQueuedTasks < 0"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: org.glassfish.grizzly.threadpool.QueueLimitedThreadPool org.glassfish.grizzly.threadpool.ThreadPoolConfig
StackMap stack:
aload 0
new java.util.concurrent.Semaphore
dup
aload 1
invokevirtual org.glassfish.grizzly.threadpool.ThreadPoolConfig.getQueueLimit:()I
invokespecial java.util.concurrent.Semaphore.<init>:(I)V
putfield org.glassfish.grizzly.threadpool.QueueLimitedThreadPool.queuePermits:Ljava/util/concurrent/Semaphore;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/glassfish/grizzly/threadpool/QueueLimitedThreadPool;
0 5 1 config Lorg/glassfish/grizzly/threadpool/ThreadPoolConfig;
MethodParameters:
Name Flags
config
public void execute(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "Runnable task is null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.threadpool.QueueLimitedThreadPool.running:Z
ifne 4
3: new java.util.concurrent.RejectedExecutionException
dup
ldc "ThreadPool is not running"
invokespecial java.util.concurrent.RejectedExecutionException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.threadpool.QueueLimitedThreadPool.queuePermits:Ljava/util/concurrent/Semaphore;
invokevirtual java.util.concurrent.Semaphore.tryAcquire:()Z
ifne 6
5: aload 0
invokevirtual org.glassfish.grizzly.threadpool.QueueLimitedThreadPool.onTaskQueueOverflow:()V
6: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.threadpool.QueueLimitedThreadPool.workQueue:Ljava/util/concurrent/BlockingQueue;
aload 1
invokeinterface java.util.concurrent.BlockingQueue.offer:(Ljava/lang/Object;)Z
ifne 9
7: aload 0
getfield org.glassfish.grizzly.threadpool.QueueLimitedThreadPool.queuePermits:Ljava/util/concurrent/Semaphore;
invokevirtual java.util.concurrent.Semaphore.release:()V
8: aload 0
invokevirtual org.glassfish.grizzly.threadpool.QueueLimitedThreadPool.onTaskQueueOverflow:()V
9: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.glassfish.grizzly.threadpool.QueueLimitedThreadPool.onTaskQueued:(Ljava/lang/Runnable;)V
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/glassfish/grizzly/threadpool/QueueLimitedThreadPool;
0 11 1 command Ljava/lang/Runnable;
MethodParameters:
Name Flags
command
protected void beforeExecute(org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker, java.lang.Thread, java.lang.Runnable);
descriptor: (Lorg/glassfish/grizzly/threadpool/AbstractThreadPool$Worker;Ljava/lang/Thread;Ljava/lang/Runnable;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokespecial org.glassfish.grizzly.threadpool.FixedThreadPool.beforeExecute:(Lorg/glassfish/grizzly/threadpool/AbstractThreadPool$Worker;Ljava/lang/Thread;Ljava/lang/Runnable;)V
1: aload 0
getfield org.glassfish.grizzly.threadpool.QueueLimitedThreadPool.queuePermits:Ljava/util/concurrent/Semaphore;
invokevirtual java.util.concurrent.Semaphore.release:()V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/glassfish/grizzly/threadpool/QueueLimitedThreadPool;
0 3 1 worker Lorg/glassfish/grizzly/threadpool/AbstractThreadPool$Worker;
0 3 2 t Ljava/lang/Thread;
0 3 3 r Ljava/lang/Runnable;
MethodParameters:
Name Flags
worker final
t final
r final
}
SourceFile: "QueueLimitedThreadPool.java"
InnerClasses:
public abstract Worker = org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker of org.glassfish.grizzly.threadpool.AbstractThreadPool