public class com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler extends rx.Scheduler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler
  super_class: rx.Scheduler
{
  private final com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy concurrencyStrategy;
    descriptor: Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final rx.Scheduler actualScheduler;
    descriptor: Lrx/Scheduler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.netflix.hystrix.HystrixThreadPool threadPool;
    descriptor: Lcom/netflix/hystrix/HystrixThreadPool;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(rx.Scheduler);
    descriptor: (Lrx/Scheduler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler this
        start local 1 // rx.Scheduler scheduler
         0: .line 39
            aload 0 /* this */
            invokespecial rx.Scheduler.<init>:()V
         1: .line 40
            aload 0 /* this */
            aload 1 /* scheduler */
            putfield com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler.actualScheduler:Lrx/Scheduler;
         2: .line 41
            aload 0 /* this */
            invokestatic com.netflix.hystrix.strategy.HystrixPlugins.getInstance:()Lcom/netflix/hystrix/strategy/HystrixPlugins;
            invokevirtual com.netflix.hystrix.strategy.HystrixPlugins.getConcurrencyStrategy:()Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
            putfield com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler.concurrencyStrategy:Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
         3: .line 42
            aload 0 /* this */
            aconst_null
            putfield com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler.threadPool:Lcom/netflix/hystrix/HystrixThreadPool;
         4: .line 43
            return
        end local 1 // rx.Scheduler scheduler
        end local 0 // com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/netflix/hystrix/strategy/concurrency/HystrixContextScheduler;
            0    5     1  scheduler  Lrx/Scheduler;
    MethodParameters:
           Name  Flags
      scheduler  

  public void <init>(com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy, rx.Scheduler);
    descriptor: (Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;Lrx/Scheduler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler this
        start local 1 // com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy concurrencyStrategy
        start local 2 // rx.Scheduler scheduler
         0: .line 45
            aload 0 /* this */
            invokespecial rx.Scheduler.<init>:()V
         1: .line 46
            aload 0 /* this */
            aload 2 /* scheduler */
            putfield com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler.actualScheduler:Lrx/Scheduler;
         2: .line 47
            aload 0 /* this */
            aload 1 /* concurrencyStrategy */
            putfield com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler.concurrencyStrategy:Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
         3: .line 48
            aload 0 /* this */
            aconst_null
            putfield com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler.threadPool:Lcom/netflix/hystrix/HystrixThreadPool;
         4: .line 49
            return
        end local 2 // rx.Scheduler scheduler
        end local 1 // com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy concurrencyStrategy
        end local 0 // com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    5     0                 this  Lcom/netflix/hystrix/strategy/concurrency/HystrixContextScheduler;
            0    5     1  concurrencyStrategy  Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
            0    5     2            scheduler  Lrx/Scheduler;
    MethodParameters:
                     Name  Flags
      concurrencyStrategy  
      scheduler            

  public void <init>(com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy, com.netflix.hystrix.HystrixThreadPool);
    descriptor: (Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;Lcom/netflix/hystrix/HystrixThreadPool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler this
        start local 1 // com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy concurrencyStrategy
        start local 2 // com.netflix.hystrix.HystrixThreadPool threadPool
         0: .line 52
            aload 0 /* this */
            aload 1 /* concurrencyStrategy */
            aload 2 /* threadPool */
            new com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler$1
            dup
            invokespecial com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler$1.<init>:()V
            invokespecial com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler.<init>:(Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;Lcom/netflix/hystrix/HystrixThreadPool;Lrx/functions/Func0;)V
         1: .line 58
            return
        end local 2 // com.netflix.hystrix.HystrixThreadPool threadPool
        end local 1 // com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy concurrencyStrategy
        end local 0 // com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lcom/netflix/hystrix/strategy/concurrency/HystrixContextScheduler;
            0    2     1  concurrencyStrategy  Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
            0    2     2           threadPool  Lcom/netflix/hystrix/HystrixThreadPool;
    MethodParameters:
                     Name  Flags
      concurrencyStrategy  
      threadPool           

  public void <init>(com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy, com.netflix.hystrix.HystrixThreadPool, rx.functions.Func0<java.lang.Boolean>);
    descriptor: (Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;Lcom/netflix/hystrix/HystrixThreadPool;Lrx/functions/Func0;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler this
        start local 1 // com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy concurrencyStrategy
        start local 2 // com.netflix.hystrix.HystrixThreadPool threadPool
        start local 3 // rx.functions.Func0 shouldInterruptThread
         0: .line 60
            aload 0 /* this */
            invokespecial rx.Scheduler.<init>:()V
         1: .line 61
            aload 0 /* this */
            aload 1 /* concurrencyStrategy */
            putfield com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler.concurrencyStrategy:Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
         2: .line 62
            aload 0 /* this */
            aload 2 /* threadPool */
            putfield com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler.threadPool:Lcom/netflix/hystrix/HystrixThreadPool;
         3: .line 63
            aload 0 /* this */
            new com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler$ThreadPoolScheduler
            dup
            aload 2 /* threadPool */
            aload 3 /* shouldInterruptThread */
            invokespecial com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler$ThreadPoolScheduler.<init>:(Lcom/netflix/hystrix/HystrixThreadPool;Lrx/functions/Func0;)V
            putfield com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler.actualScheduler:Lrx/Scheduler;
         4: .line 64
            return
        end local 3 // rx.functions.Func0 shouldInterruptThread
        end local 2 // com.netflix.hystrix.HystrixThreadPool threadPool
        end local 1 // com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy concurrencyStrategy
        end local 0 // com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    5     0                   this  Lcom/netflix/hystrix/strategy/concurrency/HystrixContextScheduler;
            0    5     1    concurrencyStrategy  Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
            0    5     2             threadPool  Lcom/netflix/hystrix/HystrixThreadPool;
            0    5     3  shouldInterruptThread  Lrx/functions/Func0<Ljava/lang/Boolean;>;
    Signature: (Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;Lcom/netflix/hystrix/HystrixThreadPool;Lrx/functions/Func0<Ljava/lang/Boolean;>;)V
    MethodParameters:
                       Name  Flags
      concurrencyStrategy    
      threadPool             
      shouldInterruptThread  

  public rx.Scheduler$Worker createWorker();
    descriptor: ()Lrx/Scheduler$Worker;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler this
         0: .line 68
            new com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler$HystrixContextSchedulerWorker
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler.actualScheduler:Lrx/Scheduler;
            invokevirtual rx.Scheduler.createWorker:()Lrx/Scheduler$Worker;
            invokespecial com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler$HystrixContextSchedulerWorker.<init>:(Lcom/netflix/hystrix/strategy/concurrency/HystrixContextScheduler;Lrx/Scheduler$Worker;)V
            areturn
        end local 0 // com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/netflix/hystrix/strategy/concurrency/HystrixContextScheduler;
}
SourceFile: "HystrixContextScheduler.java"
NestMembers:
  com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler$1  com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler$FutureCompleterWithConfigurableInterrupt  com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler$HystrixContextSchedulerWorker  com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler$ThreadPoolScheduler  com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler$ThreadPoolWorker
InnerClasses:
  com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler$1
  private FutureCompleterWithConfigurableInterrupt = com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler$FutureCompleterWithConfigurableInterrupt of com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler
  private HystrixContextSchedulerWorker = com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler$HystrixContextSchedulerWorker of com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler
  private ThreadPoolScheduler = com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler$ThreadPoolScheduler of com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler
  private ThreadPoolWorker = com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler$ThreadPoolWorker of com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler
  public abstract Worker = rx.Scheduler$Worker of rx.Scheduler