public final class com.netflix.concurrency.limits.executors.BlockingAdaptiveExecutor implements java.util.concurrent.Executor
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.netflix.concurrency.limits.executors.BlockingAdaptiveExecutor
super_class: java.lang.Object
{
private final com.netflix.concurrency.limits.Limiter<java.lang.Void> limiter;
descriptor: Lcom/netflix/concurrency/limits/Limiter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/netflix/concurrency/limits/Limiter<Ljava/lang/Void;>;
private final java.util.concurrent.Executor executor;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(com.netflix.concurrency.limits.Limiter<java.lang.Void>);
descriptor: (Lcom/netflix/concurrency/limits/Limiter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic java.util.concurrent.Executors.newCachedThreadPool:()Ljava/util/concurrent/ExecutorService;
invokespecial com.netflix.concurrency.limits.executors.BlockingAdaptiveExecutor.<init>:(Lcom/netflix/concurrency/limits/Limiter;Ljava/util/concurrent/Executor;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/netflix/concurrency/limits/executors/BlockingAdaptiveExecutor;
0 2 1 limiter Lcom/netflix/concurrency/limits/Limiter<Ljava/lang/Void;>;
Signature: (Lcom/netflix/concurrency/limits/Limiter<Ljava/lang/Void;>;)V
MethodParameters:
Name Flags
limiter
public void <init>(com.netflix.concurrency.limits.Limiter<java.lang.Void>, java.util.concurrent.Executor);
descriptor: (Lcom/netflix/concurrency/limits/Limiter;Ljava/util/concurrent/Executor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
invokestatic com.netflix.concurrency.limits.limiter.BlockingLimiter.wrap:(Lcom/netflix/concurrency/limits/Limiter;)Lcom/netflix/concurrency/limits/limiter/BlockingLimiter;
putfield com.netflix.concurrency.limits.executors.BlockingAdaptiveExecutor.limiter:Lcom/netflix/concurrency/limits/Limiter;
2: aload 0
aload 2
putfield com.netflix.concurrency.limits.executors.BlockingAdaptiveExecutor.executor:Ljava/util/concurrent/Executor;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/netflix/concurrency/limits/executors/BlockingAdaptiveExecutor;
0 4 1 limiter Lcom/netflix/concurrency/limits/Limiter<Ljava/lang/Void;>;
0 4 2 executor Ljava/util/concurrent/Executor;
Signature: (Lcom/netflix/concurrency/limits/Limiter<Ljava/lang/Void;>;Ljava/util/concurrent/Executor;)V
MethodParameters:
Name Flags
limiter
executor
public void execute(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.concurrency.limits.executors.BlockingAdaptiveExecutor.limiter:Lcom/netflix/concurrency/limits/Limiter;
aconst_null
invokeinterface com.netflix.concurrency.limits.Limiter.acquire:(Ljava/lang/Object;)Ljava/util/Optional;
invokedynamic get()Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
com/netflix/concurrency/limits/executors/BlockingAdaptiveExecutor.lambda$0()Ljava/util/concurrent/RejectedExecutionException; (6)
()Ljava/util/concurrent/RejectedExecutionException;
invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
checkcast com.netflix.concurrency.limits.Limiter$Listener
astore 2
start local 2 1: aload 0
getfield com.netflix.concurrency.limits.executors.BlockingAdaptiveExecutor.executor:Ljava/util/concurrent/Executor;
aload 1
aload 2
invokedynamic run(Ljava/lang/Runnable;Lcom/netflix/concurrency/limits/Limiter$Listener;)Ljava/lang/Runnable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
com/netflix/concurrency/limits/executors/BlockingAdaptiveExecutor.lambda$1(Ljava/lang/Runnable;Lcom/netflix/concurrency/limits/Limiter$Listener;)V (6)
()V
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/netflix/concurrency/limits/executors/BlockingAdaptiveExecutor;
0 3 1 command Ljava/lang/Runnable;
1 3 2 token Lcom/netflix/concurrency/limits/Limiter$Listener;
MethodParameters:
Name Flags
command
private static java.util.concurrent.RejectedExecutionException lambda$0();
descriptor: ()Ljava/util/concurrent/RejectedExecutionException;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=0, args_size=0
0: new java.util.concurrent.RejectedExecutionException
dup
invokespecial java.util.concurrent.RejectedExecutionException.<init>:()V
areturn
LocalVariableTable:
Start End Slot Name Signature
private static void lambda$1(java.lang.Runnable, com.netflix.concurrency.limits.Limiter$Listener);
descriptor: (Ljava/lang/Runnable;Lcom/netflix/concurrency/limits/Limiter$Listener;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=2, args_size=2
0: aload 0
invokeinterface java.lang.Runnable.run:()V
1: aload 1
invokeinterface com.netflix.concurrency.limits.Limiter$Listener.onSuccess:()V
2: goto 7
StackMap locals:
StackMap stack: java.util.concurrent.RejectedExecutionException
3: pop
4: aload 1
invokeinterface com.netflix.concurrency.limits.Limiter$Listener.onDropped:()V
goto 7
5: StackMap locals:
StackMap stack: java.lang.Exception
pop
6: aload 1
invokeinterface com.netflix.concurrency.limits.Limiter$Listener.onIgnore:()V
7: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
0 2 3 Class java.util.concurrent.RejectedExecutionException
0 2 5 Class java.lang.Exception
}
SourceFile: "BlockingAdaptiveExecutor.java"
InnerClasses:
public abstract Listener = com.netflix.concurrency.limits.Limiter$Listener of com.netflix.concurrency.limits.Limiter
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles