public class org.apache.cassandra.concurrent.SEPExecutor extends org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.concurrent.SEPExecutor
super_class: org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService
{
private final org.apache.cassandra.concurrent.SharedExecutorPool pool;
descriptor: Lorg/apache/cassandra/concurrent/SharedExecutorPool;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public final int maxWorkers;
descriptor: I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
private final int maxTasksQueued;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.cassandra.metrics.SEPMetrics metrics;
descriptor: Lorg/apache/cassandra/metrics/SEPMetrics;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.atomic.AtomicLong permits;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.cassandra.utils.concurrent.WaitQueue hasRoom;
descriptor: Lorg/apache/cassandra/utils/concurrent/WaitQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.atomic.AtomicLong completedTasks;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
volatile boolean shuttingDown;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
final org.apache.cassandra.utils.concurrent.SimpleCondition shutdown;
descriptor: Lorg/apache/cassandra/utils/concurrent/SimpleCondition;
flags: (0x0010) ACC_FINAL
protected final java.util.concurrent.ConcurrentLinkedQueue<org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask<?>> tasks;
descriptor: Ljava/util/concurrent/ConcurrentLinkedQueue;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentLinkedQueue<Lorg/apache/cassandra/concurrent/AbstractLocalAwareExecutorService$FutureTask<*>;>;
void <init>(org.apache.cassandra.concurrent.SharedExecutorPool, int, int, java.lang.String, java.lang.String);
descriptor: (Lorg/apache/cassandra/concurrent/SharedExecutorPool;IILjava/lang/String;Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=6, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
putfield org.apache.cassandra.concurrent.SEPExecutor.permits:Ljava/util/concurrent/atomic/AtomicLong;
2: aload 0
new org.apache.cassandra.utils.concurrent.WaitQueue
dup
invokespecial org.apache.cassandra.utils.concurrent.WaitQueue.<init>:()V
putfield org.apache.cassandra.concurrent.SEPExecutor.hasRoom:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
3: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
putfield org.apache.cassandra.concurrent.SEPExecutor.completedTasks:Ljava/util/concurrent/atomic/AtomicLong;
4: aload 0
iconst_0
putfield org.apache.cassandra.concurrent.SEPExecutor.shuttingDown:Z
5: aload 0
new org.apache.cassandra.utils.concurrent.SimpleCondition
dup
invokespecial org.apache.cassandra.utils.concurrent.SimpleCondition.<init>:()V
putfield org.apache.cassandra.concurrent.SEPExecutor.shutdown:Lorg/apache/cassandra/utils/concurrent/SimpleCondition;
6: aload 0
new java.util.concurrent.ConcurrentLinkedQueue
dup
invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
putfield org.apache.cassandra.concurrent.SEPExecutor.tasks:Ljava/util/concurrent/ConcurrentLinkedQueue;
7: aload 0
aload 1
putfield org.apache.cassandra.concurrent.SEPExecutor.pool:Lorg/apache/cassandra/concurrent/SharedExecutorPool;
8: aload 0
aload 5
putfield org.apache.cassandra.concurrent.SEPExecutor.name:Ljava/lang/String;
9: aload 0
iload 2
putfield org.apache.cassandra.concurrent.SEPExecutor.maxWorkers:I
10: aload 0
iload 3
putfield org.apache.cassandra.concurrent.SEPExecutor.maxTasksQueued:I
11: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.permits:Ljava/util/concurrent/atomic/AtomicLong;
iconst_0
iload 2
invokestatic org.apache.cassandra.concurrent.SEPExecutor.combine:(II)J
invokevirtual java.util.concurrent.atomic.AtomicLong.set:(J)V
12: aload 0
new org.apache.cassandra.metrics.SEPMetrics
dup
aload 0
aload 4
aload 5
invokespecial org.apache.cassandra.metrics.SEPMetrics.<init>:(Lorg/apache/cassandra/concurrent/SEPExecutor;Ljava/lang/String;Ljava/lang/String;)V
putfield org.apache.cassandra.concurrent.SEPExecutor.metrics:Lorg/apache/cassandra/metrics/SEPMetrics;
13: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/cassandra/concurrent/SEPExecutor;
0 14 1 pool Lorg/apache/cassandra/concurrent/SharedExecutorPool;
0 14 2 maxWorkers I
0 14 3 maxTasksQueued I
0 14 4 jmxPath Ljava/lang/String;
0 14 5 name Ljava/lang/String;
MethodParameters:
Name Flags
pool
maxWorkers
maxTasksQueued
jmxPath
name
protected void onCompletion();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.completedTasks:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
pop2
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/concurrent/SEPExecutor;
boolean maybeSchedule();
descriptor: ()Z
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.pool:Lorg/apache/cassandra/concurrent/SharedExecutorPool;
getfield org.apache.cassandra.concurrent.SharedExecutorPool.spinningCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
ifgt 1
aload 0
iconst_1
invokevirtual org.apache.cassandra.concurrent.SEPExecutor.takeWorkPermit:(Z)Z
ifne 2
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.pool:Lorg/apache/cassandra/concurrent/SharedExecutorPool;
new org.apache.cassandra.concurrent.SEPWorker$Work
dup
aload 0
invokespecial org.apache.cassandra.concurrent.SEPWorker$Work.<init>:(Lorg/apache/cassandra/concurrent/SEPExecutor;)V
invokevirtual org.apache.cassandra.concurrent.SharedExecutorPool.schedule:(Lorg/apache/cassandra/concurrent/SEPWorker$Work;)V
3: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/concurrent/SEPExecutor;
protected void addTask(org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask<?>);
descriptor: (Lorg/apache/cassandra/concurrent/AbstractLocalAwareExecutorService$FutureTask;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.tasks:Ljava/util/concurrent/ConcurrentLinkedQueue;
aload 1
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.add:(Ljava/lang/Object;)Z
pop
1: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.permits:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lstore 3
start local 3 2: lload 3
invokestatic org.apache.cassandra.concurrent.SEPExecutor.taskPermits:(J)I
istore 2
start local 2 3: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.permits:Ljava/util/concurrent/atomic/AtomicLong;
lload 3
lload 3
iload 2
iconst_1
iadd
invokestatic org.apache.cassandra.concurrent.SEPExecutor.updateTaskPermits:(JI)J
invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
ifeq 1
end local 3 4: iload 2
ifne 7
5: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.pool:Lorg/apache/cassandra/concurrent/SharedExecutorPool;
invokevirtual org.apache.cassandra.concurrent.SharedExecutorPool.maybeStartSpinningWorker:()V
6: goto 18
7: StackMap locals: int
StackMap stack:
iload 2
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.maxTasksQueued:I
if_icmplt 18
8: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.hasRoom:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
invokevirtual org.apache.cassandra.utils.concurrent.WaitQueue.register:()Lorg/apache/cassandra/utils/concurrent/WaitQueue$Signal;
astore 3
start local 3 9: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.permits:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
invokestatic org.apache.cassandra.concurrent.SEPExecutor.taskPermits:(J)I
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.maxTasksQueued:I
if_icmple 17
10: aload 0
iconst_1
invokevirtual org.apache.cassandra.concurrent.SEPExecutor.takeWorkPermit:(Z)Z
ifeq 12
11: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.pool:Lorg/apache/cassandra/concurrent/SharedExecutorPool;
new org.apache.cassandra.concurrent.SEPWorker$Work
dup
aload 0
invokespecial org.apache.cassandra.concurrent.SEPWorker$Work.<init>:(Lorg/apache/cassandra/concurrent/SEPExecutor;)V
invokevirtual org.apache.cassandra.concurrent.SharedExecutorPool.schedule:(Lorg/apache/cassandra/concurrent/SEPWorker$Work;)V
12: StackMap locals: org.apache.cassandra.utils.concurrent.WaitQueue$Signal
StackMap stack:
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.metrics:Lorg/apache/cassandra/metrics/SEPMetrics;
getfield org.apache.cassandra.metrics.SEPMetrics.totalBlocked:Lcom/codahale/metrics/Counter;
invokevirtual com.codahale.metrics.Counter.inc:()V
13: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.metrics:Lorg/apache/cassandra/metrics/SEPMetrics;
getfield org.apache.cassandra.metrics.SEPMetrics.currentBlocked:Lcom/codahale/metrics/Counter;
invokevirtual com.codahale.metrics.Counter.inc:()V
14: aload 3
invokeinterface org.apache.cassandra.utils.concurrent.WaitQueue$Signal.awaitUninterruptibly:()V
15: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.metrics:Lorg/apache/cassandra/metrics/SEPMetrics;
getfield org.apache.cassandra.metrics.SEPMetrics.currentBlocked:Lcom/codahale/metrics/Counter;
invokevirtual com.codahale.metrics.Counter.dec:()V
16: goto 18
17: StackMap locals:
StackMap stack:
aload 3
invokeinterface org.apache.cassandra.utils.concurrent.WaitQueue$Signal.cancel:()V
end local 3 18: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/apache/cassandra/concurrent/SEPExecutor;
0 19 1 task Lorg/apache/cassandra/concurrent/AbstractLocalAwareExecutorService$FutureTask<*>;
3 19 2 taskPermits I
2 4 3 current J
9 18 3 s Lorg/apache/cassandra/utils/concurrent/WaitQueue$Signal;
Signature: (Lorg/apache/cassandra/concurrent/AbstractLocalAwareExecutorService$FutureTask<*>;)V
MethodParameters:
Name Flags
task
boolean takeTaskPermit();
descriptor: ()Z
flags: (0x0000)
Code:
stack=7, locals=4, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.permits:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lstore 1
start local 1 1: lload 1
invokestatic org.apache.cassandra.concurrent.SEPExecutor.taskPermits:(J)I
istore 3
start local 3 2: iload 3
ifne 4
3: iconst_0
ireturn
4: StackMap locals: long int
StackMap stack:
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.permits:Ljava/util/concurrent/atomic/AtomicLong;
lload 1
lload 1
iload 3
iconst_1
isub
invokestatic org.apache.cassandra.concurrent.SEPExecutor.updateTaskPermits:(JI)J
invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
ifeq 0
5: iload 3
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.maxTasksQueued:I
if_icmpne 7
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.hasRoom:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
invokevirtual org.apache.cassandra.utils.concurrent.WaitQueue.hasWaiters:()Z
ifeq 7
6: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.hasRoom:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
invokevirtual org.apache.cassandra.utils.concurrent.WaitQueue.signalAll:()V
7: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/concurrent/SEPExecutor;
1 8 1 current J
2 8 3 taskPermits I
boolean takeWorkPermit(boolean);
descriptor: (Z)Z
flags: (0x0000)
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: iload 1
ifeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 2
start local 2 3: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.permits:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lstore 3
start local 3 4: lload 3
invokestatic org.apache.cassandra.concurrent.SEPExecutor.workPermits:(J)I
istore 5
start local 5 5: lload 3
invokestatic org.apache.cassandra.concurrent.SEPExecutor.taskPermits:(J)I
istore 6
start local 6 6: iload 5
ifeq 7
iload 6
ifne 8
7: StackMap locals: long int int
StackMap stack:
iconst_0
ireturn
8: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.permits:Ljava/util/concurrent/atomic/AtomicLong;
lload 3
iload 6
iload 2
isub
iload 5
iconst_1
isub
invokestatic org.apache.cassandra.concurrent.SEPExecutor.combine:(II)J
invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
ifeq 3
9: iload 1
ifeq 11
iload 6
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.maxTasksQueued:I
if_icmpne 11
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.hasRoom:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
invokevirtual org.apache.cassandra.utils.concurrent.WaitQueue.hasWaiters:()Z
ifeq 11
10: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.hasRoom:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
invokevirtual org.apache.cassandra.utils.concurrent.WaitQueue.signalAll:()V
11: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/cassandra/concurrent/SEPExecutor;
0 12 1 takeTaskPermit Z
3 12 2 taskDelta I
4 12 3 current J
5 12 5 workPermits I
6 12 6 taskPermits I
MethodParameters:
Name Flags
takeTaskPermit
void returnWorkPermit();
descriptor: ()V
flags: (0x0000)
Code:
stack=7, locals=4, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.permits:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lstore 1
start local 1 1: lload 1
invokestatic org.apache.cassandra.concurrent.SEPExecutor.workPermits:(J)I
istore 3
start local 3 2: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.permits:Ljava/util/concurrent/atomic/AtomicLong;
lload 1
lload 1
iload 3
iconst_1
iadd
invokestatic org.apache.cassandra.concurrent.SEPExecutor.updateWorkPermits:(JI)J
invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
ifeq 0
3: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.shuttingDown:Z
ifeq 5
iload 3
iconst_1
iadd
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.maxWorkers:I
if_icmpne 5
4: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.shutdown:Lorg/apache/cassandra/utils/concurrent/SimpleCondition;
invokevirtual org.apache.cassandra.utils.concurrent.SimpleCondition.signalAll:()V
end local 3 end local 1 5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/concurrent/SEPExecutor;
1 5 1 current J
2 5 3 workPermits I
public void maybeExecuteImmediately(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokevirtual org.apache.cassandra.concurrent.SEPExecutor.newTaskFor:(Ljava/lang/Runnable;Ljava/lang/Object;)Lorg/apache/cassandra/concurrent/AbstractLocalAwareExecutorService$FutureTask;
astore 2
start local 2 1: aload 0
iconst_0
invokevirtual org.apache.cassandra.concurrent.SEPExecutor.takeWorkPermit:(Z)Z
ifne 4
2: aload 0
aload 2
invokevirtual org.apache.cassandra.concurrent.SEPExecutor.addTask:(Lorg/apache/cassandra/concurrent/AbstractLocalAwareExecutorService$FutureTask;)V
3: goto 12
4: StackMap locals: org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask
StackMap stack:
aload 2
invokevirtual org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run:()V
5: goto 10
6: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
7: aload 0
invokevirtual org.apache.cassandra.concurrent.SEPExecutor.returnWorkPermit:()V
8: aload 0
invokevirtual org.apache.cassandra.concurrent.SEPExecutor.maybeSchedule:()Z
pop
9: aload 3
athrow
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.cassandra.concurrent.SEPExecutor.returnWorkPermit:()V
11: aload 0
invokevirtual org.apache.cassandra.concurrent.SEPExecutor.maybeSchedule:()Z
pop
12: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/cassandra/concurrent/SEPExecutor;
0 13 1 command Ljava/lang/Runnable;
1 13 2 ft Lorg/apache/cassandra/concurrent/AbstractLocalAwareExecutorService$FutureTask<*>;
Exception table:
from to target type
4 6 6 any
MethodParameters:
Name Flags
command
public synchronized void shutdown();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.apache.cassandra.concurrent.SEPExecutor.shuttingDown:Z
1: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.pool:Lorg/apache/cassandra/concurrent/SharedExecutorPool;
getfield org.apache.cassandra.concurrent.SharedExecutorPool.executors:Ljava/util/List;
aload 0
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
2: aload 0
invokevirtual org.apache.cassandra.concurrent.SEPExecutor.getActiveCount:()I
ifne 4
aload 0
invokevirtual org.apache.cassandra.concurrent.SEPExecutor.getPendingTasks:()J
lconst_0
lcmp
ifne 4
3: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.shutdown:Lorg/apache/cassandra/utils/concurrent/SimpleCondition;
invokevirtual org.apache.cassandra.utils.concurrent.SimpleCondition.signalAll:()V
4: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.metrics:Lorg/apache/cassandra/metrics/SEPMetrics;
invokevirtual org.apache.cassandra.metrics.SEPMetrics.release:()V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/concurrent/SEPExecutor;
public synchronized java.util.List<java.lang.Runnable> shutdownNow();
descriptor: ()Ljava/util/List;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.cassandra.concurrent.SEPExecutor.shutdown:()V
1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 2: goto 4
3: StackMap locals: java.util.List
StackMap stack:
aload 1
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.tasks:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.poll:()Ljava/lang/Object;
checkcast java.lang.Runnable
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.cassandra.concurrent.SEPExecutor.takeTaskPermit:()Z
ifne 3
5: aload 0
invokevirtual org.apache.cassandra.concurrent.SEPExecutor.getActiveCount:()I
ifne 7
6: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.shutdown:Lorg/apache/cassandra/utils/concurrent/SimpleCondition;
invokevirtual org.apache.cassandra.utils.concurrent.SimpleCondition.signalAll:()V
7: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/concurrent/SEPExecutor;
2 8 1 aborted Ljava/util/List<Ljava/lang/Runnable;>;
Signature: ()Ljava/util/List<Ljava/lang/Runnable;>;
public boolean isShutdown();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.shuttingDown:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/concurrent/SEPExecutor;
public boolean isTerminated();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.shuttingDown:Z
ifeq 1
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.shutdown:Lorg/apache/cassandra/utils/concurrent/SimpleCondition;
invokevirtual org.apache.cassandra.utils.concurrent.SimpleCondition.isSignaled:()Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/concurrent/SEPExecutor;
public boolean awaitTermination(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.shutdown:Lorg/apache/cassandra/utils/concurrent/SimpleCondition;
lload 1
aload 3
invokevirtual org.apache.cassandra.utils.concurrent.SimpleCondition.await:(JLjava/util/concurrent/TimeUnit;)Z
pop
1: aload 0
invokevirtual org.apache.cassandra.concurrent.SEPExecutor.isTerminated:()Z
ireturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/concurrent/SEPExecutor;
0 2 1 timeout J
0 2 3 unit Ljava/util/concurrent/TimeUnit;
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
timeout
unit
public long getPendingTasks();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.permits:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
invokestatic org.apache.cassandra.concurrent.SEPExecutor.taskPermits:(J)I
i2l
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/concurrent/SEPExecutor;
public long getCompletedTasks();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.completedTasks:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/concurrent/SEPExecutor;
public int getActiveCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.maxWorkers:I
aload 0
getfield org.apache.cassandra.concurrent.SEPExecutor.permits:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
invokestatic org.apache.cassandra.concurrent.SEPExecutor.workPermits:(J)I
isub
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/concurrent/SEPExecutor;
private static int taskPermits(long);
descriptor: (J)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: lload 0
l2i
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 both J
MethodParameters:
Name Flags
both
private static int workPermits(long);
descriptor: (J)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: lload 0
bipush 32
lushr
l2i
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 both J
MethodParameters:
Name Flags
both
private static long updateTaskPermits(long, int);
descriptor: (JI)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 2 0: lload 0
ldc -4294967296
land
iload 2
i2l
lor
lreturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 prev J
0 1 2 taskPermits I
MethodParameters:
Name Flags
prev
taskPermits
private static long updateWorkPermits(long, int);
descriptor: (JI)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 2 0: iload 2
i2l
bipush 32
lshl
lload 0
ldc 4294967295
land
lor
lreturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 prev J
0 1 2 workPermits I
MethodParameters:
Name Flags
prev
workPermits
private static long combine(int, int);
descriptor: (II)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 1
i2l
bipush 32
lshl
iload 0
i2l
lor
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 taskPermits I
0 1 1 workPermits I
MethodParameters:
Name Flags
taskPermits
workPermits
}
SourceFile: "SEPExecutor.java"
InnerClasses:
FutureTask = org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask of org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService
final Work = org.apache.cassandra.concurrent.SEPWorker$Work of org.apache.cassandra.concurrent.SEPWorker
public abstract Signal = org.apache.cassandra.utils.concurrent.WaitQueue$Signal of org.apache.cassandra.utils.concurrent.WaitQueue