public final class io.reactivex.internal.schedulers.ExecutorScheduler extends io.reactivex.Scheduler
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: io.reactivex.internal.schedulers.ExecutorScheduler
  super_class: io.reactivex.Scheduler
{
  final boolean interruptibleWorker;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final java.util.concurrent.Executor executor;
    descriptor: Ljava/util/concurrent/Executor;
    flags: (0x0010) ACC_FINAL
    RuntimeInvisibleAnnotations: 
      io.reactivex.annotations.NonNull()

  static final io.reactivex.Scheduler HELPER;
    descriptor: Lio/reactivex/Scheduler;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 39
            invokestatic io.reactivex.schedulers.Schedulers.single:()Lio/reactivex/Scheduler;
            putstatic io.reactivex.internal.schedulers.ExecutorScheduler.HELPER:Lio/reactivex/Scheduler;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.util.concurrent.Executor, boolean);
    descriptor: (Ljava/util/concurrent/Executor;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.reactivex.internal.schedulers.ExecutorScheduler this
        start local 1 // java.util.concurrent.Executor executor
        start local 2 // boolean interruptibleWorker
         0: .line 41
            aload 0 /* this */
            invokespecial io.reactivex.Scheduler.<init>:()V
         1: .line 42
            aload 0 /* this */
            aload 1 /* executor */
            putfield io.reactivex.internal.schedulers.ExecutorScheduler.executor:Ljava/util/concurrent/Executor;
         2: .line 43
            aload 0 /* this */
            iload 2 /* interruptibleWorker */
            putfield io.reactivex.internal.schedulers.ExecutorScheduler.interruptibleWorker:Z
         3: .line 44
            return
        end local 2 // boolean interruptibleWorker
        end local 1 // java.util.concurrent.Executor executor
        end local 0 // io.reactivex.internal.schedulers.ExecutorScheduler this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    4     0                 this  Lio/reactivex/internal/schedulers/ExecutorScheduler;
            0    4     1             executor  Ljava/util/concurrent/Executor;
            0    4     2  interruptibleWorker  Z
    RuntimeInvisibleParameterAnnotations: 
      0:
        io.reactivex.annotations.NonNull()
      1:
    MethodParameters:
                     Name  Flags
      executor             
      interruptibleWorker  

  public io.reactivex.Scheduler$Worker createWorker();
    descriptor: ()Lio/reactivex/Scheduler$Worker;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.reactivex.internal.schedulers.ExecutorScheduler this
         0: .line 49
            new io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker
            dup
            aload 0 /* this */
            getfield io.reactivex.internal.schedulers.ExecutorScheduler.executor:Ljava/util/concurrent/Executor;
            aload 0 /* this */
            getfield io.reactivex.internal.schedulers.ExecutorScheduler.interruptibleWorker:Z
            invokespecial io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker.<init>:(Ljava/util/concurrent/Executor;Z)V
            areturn
        end local 0 // io.reactivex.internal.schedulers.ExecutorScheduler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/reactivex/internal/schedulers/ExecutorScheduler;
    RuntimeInvisibleAnnotations: 
      io.reactivex.annotations.NonNull()

  public io.reactivex.disposables.Disposable scheduleDirect(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Lio/reactivex/disposables/Disposable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // io.reactivex.internal.schedulers.ExecutorScheduler this
        start local 1 // java.lang.Runnable run
         0: .line 55
            aload 1 /* run */
            invokestatic io.reactivex.plugins.RxJavaPlugins.onSchedule:(Ljava/lang/Runnable;)Ljava/lang/Runnable;
            astore 2 /* decoratedRun */
        start local 2 // java.lang.Runnable decoratedRun
         1: .line 57
            aload 0 /* this */
            getfield io.reactivex.internal.schedulers.ExecutorScheduler.executor:Ljava/util/concurrent/Executor;
            instanceof java.util.concurrent.ExecutorService
            ifeq 7
         2: .line 58
            new io.reactivex.internal.schedulers.ScheduledDirectTask
            dup
            aload 2 /* decoratedRun */
            invokespecial io.reactivex.internal.schedulers.ScheduledDirectTask.<init>:(Ljava/lang/Runnable;)V
            astore 3 /* task */
        start local 3 // io.reactivex.internal.schedulers.ScheduledDirectTask task
         3: .line 59
            aload 0 /* this */
            getfield io.reactivex.internal.schedulers.ExecutorScheduler.executor:Ljava/util/concurrent/Executor;
            checkcast java.util.concurrent.ExecutorService
            aload 3 /* task */
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            astore 4 /* f */
        start local 4 // java.util.concurrent.Future f
         4: .line 60
            aload 3 /* task */
            aload 4 /* f */
            invokevirtual io.reactivex.internal.schedulers.ScheduledDirectTask.setFuture:(Ljava/util/concurrent/Future;)V
         5: .line 61
            aload 3 /* task */
         6: areturn
        end local 4 // java.util.concurrent.Future f
        end local 3 // io.reactivex.internal.schedulers.ScheduledDirectTask task
         7: .line 64
      StackMap locals: java.lang.Runnable
      StackMap stack:
            aload 0 /* this */
            getfield io.reactivex.internal.schedulers.ExecutorScheduler.interruptibleWorker:Z
            ifeq 12
         8: .line 65
            new io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable
            dup
            aload 2 /* decoratedRun */
            aconst_null
            invokespecial io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.<init>:(Ljava/lang/Runnable;Lio/reactivex/internal/disposables/DisposableContainer;)V
            astore 3 /* interruptibleTask */
        start local 3 // io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable interruptibleTask
         9: .line 66
            aload 0 /* this */
            getfield io.reactivex.internal.schedulers.ExecutorScheduler.executor:Ljava/util/concurrent/Executor;
            aload 3 /* interruptibleTask */
            invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
        10: .line 67
            aload 3 /* interruptibleTask */
        11: areturn
        end local 3 // io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable interruptibleTask
        12: .line 69
      StackMap locals:
      StackMap stack:
            new io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$BooleanRunnable
            dup
            aload 2 /* decoratedRun */
            invokespecial io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$BooleanRunnable.<init>:(Ljava/lang/Runnable;)V
            astore 3 /* br */
        start local 3 // io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$BooleanRunnable br
        13: .line 70
            aload 0 /* this */
            getfield io.reactivex.internal.schedulers.ExecutorScheduler.executor:Ljava/util/concurrent/Executor;
            aload 3 /* br */
            invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
        14: .line 71
            aload 3 /* br */
        15: areturn
        end local 3 // io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$BooleanRunnable br
        16: .line 73
      StackMap locals:
      StackMap stack: java.util.concurrent.RejectedExecutionException
            astore 3 /* ex */
        start local 3 // java.util.concurrent.RejectedExecutionException ex
        17: .line 74
            aload 3 /* ex */
            invokestatic io.reactivex.plugins.RxJavaPlugins.onError:(Ljava/lang/Throwable;)V
        18: .line 75
            getstatic io.reactivex.internal.disposables.EmptyDisposable.INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
            areturn
        end local 3 // java.util.concurrent.RejectedExecutionException ex
        end local 2 // java.lang.Runnable decoratedRun
        end local 1 // java.lang.Runnable run
        end local 0 // io.reactivex.internal.schedulers.ExecutorScheduler this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   19     0               this  Lio/reactivex/internal/schedulers/ExecutorScheduler;
            0   19     1                run  Ljava/lang/Runnable;
            1   19     2       decoratedRun  Ljava/lang/Runnable;
            3    7     3               task  Lio/reactivex/internal/schedulers/ScheduledDirectTask;
            4    7     4                  f  Ljava/util/concurrent/Future<*>;
            9   12     3  interruptibleTask  Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;
           13   16     3                 br  Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$BooleanRunnable;
           17   19     3                 ex  Ljava/util/concurrent/RejectedExecutionException;
      Exception table:
        from    to  target  type
           1     6      16  Class java.util.concurrent.RejectedExecutionException
           7    11      16  Class java.util.concurrent.RejectedExecutionException
          12    15      16  Class java.util.concurrent.RejectedExecutionException
    RuntimeInvisibleAnnotations: 
      io.reactivex.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        io.reactivex.annotations.NonNull()
    MethodParameters:
      Name  Flags
      run   

  public io.reactivex.disposables.Disposable scheduleDirect(java.lang.Runnable, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // io.reactivex.internal.schedulers.ExecutorScheduler this
        start local 1 // java.lang.Runnable run
        start local 2 // long delay
        start local 4 // java.util.concurrent.TimeUnit unit
         0: .line 82
            aload 1 /* run */
            invokestatic io.reactivex.plugins.RxJavaPlugins.onSchedule:(Ljava/lang/Runnable;)Ljava/lang/Runnable;
            astore 5 /* decoratedRun */
        start local 5 // java.lang.Runnable decoratedRun
         1: .line 83
            aload 0 /* this */
            getfield io.reactivex.internal.schedulers.ExecutorScheduler.executor:Ljava/util/concurrent/Executor;
            instanceof java.util.concurrent.ScheduledExecutorService
            ifeq 10
         2: .line 85
            new io.reactivex.internal.schedulers.ScheduledDirectTask
            dup
            aload 5 /* decoratedRun */
            invokespecial io.reactivex.internal.schedulers.ScheduledDirectTask.<init>:(Ljava/lang/Runnable;)V
            astore 6 /* task */
        start local 6 // io.reactivex.internal.schedulers.ScheduledDirectTask task
         3: .line 86
            aload 0 /* this */
            getfield io.reactivex.internal.schedulers.ExecutorScheduler.executor:Ljava/util/concurrent/Executor;
            checkcast java.util.concurrent.ScheduledExecutorService
            aload 6 /* task */
            lload 2 /* delay */
            aload 4 /* unit */
            invokeinterface java.util.concurrent.ScheduledExecutorService.schedule:(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
            astore 7 /* f */
        start local 7 // java.util.concurrent.Future f
         4: .line 87
            aload 6 /* task */
            aload 7 /* f */
            invokevirtual io.reactivex.internal.schedulers.ScheduledDirectTask.setFuture:(Ljava/util/concurrent/Future;)V
         5: .line 88
            aload 6 /* task */
         6: areturn
        end local 7 // java.util.concurrent.Future f
        end local 6 // io.reactivex.internal.schedulers.ScheduledDirectTask task
         7: .line 89
      StackMap locals: io.reactivex.internal.schedulers.ExecutorScheduler java.lang.Runnable long java.util.concurrent.TimeUnit java.lang.Runnable
      StackMap stack: java.util.concurrent.RejectedExecutionException
            astore 6 /* ex */
        start local 6 // java.util.concurrent.RejectedExecutionException ex
         8: .line 90
            aload 6 /* ex */
            invokestatic io.reactivex.plugins.RxJavaPlugins.onError:(Ljava/lang/Throwable;)V
         9: .line 91
            getstatic io.reactivex.internal.disposables.EmptyDisposable.INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
            areturn
        end local 6 // java.util.concurrent.RejectedExecutionException ex
        10: .line 95
      StackMap locals:
      StackMap stack:
            new io.reactivex.internal.schedulers.ExecutorScheduler$DelayedRunnable
            dup
            aload 5 /* decoratedRun */
            invokespecial io.reactivex.internal.schedulers.ExecutorScheduler$DelayedRunnable.<init>:(Ljava/lang/Runnable;)V
            astore 6 /* dr */
        start local 6 // io.reactivex.internal.schedulers.ExecutorScheduler$DelayedRunnable dr
        11: .line 97
            getstatic io.reactivex.internal.schedulers.ExecutorScheduler.HELPER:Lio/reactivex/Scheduler;
            new io.reactivex.internal.schedulers.ExecutorScheduler$DelayedDispose
            dup
            aload 0 /* this */
            aload 6 /* dr */
            invokespecial io.reactivex.internal.schedulers.ExecutorScheduler$DelayedDispose.<init>:(Lio/reactivex/internal/schedulers/ExecutorScheduler;Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;)V
            lload 2 /* delay */
            aload 4 /* unit */
            invokevirtual io.reactivex.Scheduler.scheduleDirect:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
            astore 7 /* delayed */
        start local 7 // io.reactivex.disposables.Disposable delayed
        12: .line 99
            aload 6 /* dr */
            getfield io.reactivex.internal.schedulers.ExecutorScheduler$DelayedRunnable.timed:Lio/reactivex/internal/disposables/SequentialDisposable;
            aload 7 /* delayed */
            invokevirtual io.reactivex.internal.disposables.SequentialDisposable.replace:(Lio/reactivex/disposables/Disposable;)Z
            pop
        13: .line 101
            aload 6 /* dr */
            areturn
        end local 7 // io.reactivex.disposables.Disposable delayed
        end local 6 // io.reactivex.internal.schedulers.ExecutorScheduler$DelayedRunnable dr
        end local 5 // java.lang.Runnable decoratedRun
        end local 4 // java.util.concurrent.TimeUnit unit
        end local 2 // long delay
        end local 1 // java.lang.Runnable run
        end local 0 // io.reactivex.internal.schedulers.ExecutorScheduler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Lio/reactivex/internal/schedulers/ExecutorScheduler;
            0   14     1           run  Ljava/lang/Runnable;
            0   14     2         delay  J
            0   14     4          unit  Ljava/util/concurrent/TimeUnit;
            1   14     5  decoratedRun  Ljava/lang/Runnable;
            3    7     6          task  Lio/reactivex/internal/schedulers/ScheduledDirectTask;
            4    7     7             f  Ljava/util/concurrent/Future<*>;
            8   10     6            ex  Ljava/util/concurrent/RejectedExecutionException;
           11   14     6            dr  Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;
           12   14     7       delayed  Lio/reactivex/disposables/Disposable;
      Exception table:
        from    to  target  type
           2     6       7  Class java.util.concurrent.RejectedExecutionException
    RuntimeInvisibleAnnotations: 
      io.reactivex.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        io.reactivex.annotations.NonNull()
      1:
      2:
    MethodParameters:
       Name  Flags
      run    
      delay  final
      unit   final

  public io.reactivex.disposables.Disposable schedulePeriodicallyDirect(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=5
        start local 0 // io.reactivex.internal.schedulers.ExecutorScheduler this
        start local 1 // java.lang.Runnable run
        start local 2 // long initialDelay
        start local 4 // long period
        start local 6 // java.util.concurrent.TimeUnit unit
         0: .line 107
            aload 0 /* this */
            getfield io.reactivex.internal.schedulers.ExecutorScheduler.executor:Ljava/util/concurrent/Executor;
            instanceof java.util.concurrent.ScheduledExecutorService
            ifeq 10
         1: .line 108
            aload 1 /* run */
            invokestatic io.reactivex.plugins.RxJavaPlugins.onSchedule:(Ljava/lang/Runnable;)Ljava/lang/Runnable;
            astore 7 /* decoratedRun */
        start local 7 // java.lang.Runnable decoratedRun
         2: .line 110
            new io.reactivex.internal.schedulers.ScheduledDirectPeriodicTask
            dup
            aload 7 /* decoratedRun */
            invokespecial io.reactivex.internal.schedulers.ScheduledDirectPeriodicTask.<init>:(Ljava/lang/Runnable;)V
            astore 8 /* task */
        start local 8 // io.reactivex.internal.schedulers.ScheduledDirectPeriodicTask task
         3: .line 111
            aload 0 /* this */
            getfield io.reactivex.internal.schedulers.ExecutorScheduler.executor:Ljava/util/concurrent/Executor;
            checkcast java.util.concurrent.ScheduledExecutorService
            aload 8 /* task */
            lload 2 /* initialDelay */
            lload 4 /* period */
            aload 6 /* unit */
            invokeinterface java.util.concurrent.ScheduledExecutorService.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
            astore 9 /* f */
        start local 9 // java.util.concurrent.Future f
         4: .line 112
            aload 8 /* task */
            aload 9 /* f */
            invokevirtual io.reactivex.internal.schedulers.ScheduledDirectPeriodicTask.setFuture:(Ljava/util/concurrent/Future;)V
         5: .line 113
            aload 8 /* task */
         6: areturn
        end local 9 // java.util.concurrent.Future f
        end local 8 // io.reactivex.internal.schedulers.ScheduledDirectPeriodicTask task
         7: .line 114
      StackMap locals: io.reactivex.internal.schedulers.ExecutorScheduler java.lang.Runnable long long java.util.concurrent.TimeUnit java.lang.Runnable
      StackMap stack: java.util.concurrent.RejectedExecutionException
            astore 8 /* ex */
        start local 8 // java.util.concurrent.RejectedExecutionException ex
         8: .line 115
            aload 8 /* ex */
            invokestatic io.reactivex.plugins.RxJavaPlugins.onError:(Ljava/lang/Throwable;)V
         9: .line 116
            getstatic io.reactivex.internal.disposables.EmptyDisposable.INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
            areturn
        end local 8 // java.util.concurrent.RejectedExecutionException ex
        end local 7 // java.lang.Runnable decoratedRun
        10: .line 119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* run */
            lload 2 /* initialDelay */
            lload 4 /* period */
            aload 6 /* unit */
            invokespecial io.reactivex.Scheduler.schedulePeriodicallyDirect:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
            areturn
        end local 6 // java.util.concurrent.TimeUnit unit
        end local 4 // long period
        end local 2 // long initialDelay
        end local 1 // java.lang.Runnable run
        end local 0 // io.reactivex.internal.schedulers.ExecutorScheduler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lio/reactivex/internal/schedulers/ExecutorScheduler;
            0   11     1           run  Ljava/lang/Runnable;
            0   11     2  initialDelay  J
            0   11     4        period  J
            0   11     6          unit  Ljava/util/concurrent/TimeUnit;
            2   10     7  decoratedRun  Ljava/lang/Runnable;
            3    7     8          task  Lio/reactivex/internal/schedulers/ScheduledDirectPeriodicTask;
            4    7     9             f  Ljava/util/concurrent/Future<*>;
            8   10     8            ex  Ljava/util/concurrent/RejectedExecutionException;
      Exception table:
        from    to  target  type
           2     6       7  Class java.util.concurrent.RejectedExecutionException
    RuntimeInvisibleAnnotations: 
      io.reactivex.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        io.reactivex.annotations.NonNull()
      1:
      2:
      3:
    MethodParameters:
              Name  Flags
      run           
      initialDelay  
      period        
      unit          
}
SourceFile: "ExecutorScheduler.java"
NestMembers:
  io.reactivex.internal.schedulers.ExecutorScheduler$DelayedDispose  io.reactivex.internal.schedulers.ExecutorScheduler$DelayedRunnable  io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker  io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$BooleanRunnable  io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable  io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$SequentialDispose
InnerClasses:
  public abstract Worker = io.reactivex.Scheduler$Worker of io.reactivex.Scheduler
  final DelayedDispose = io.reactivex.internal.schedulers.ExecutorScheduler$DelayedDispose of io.reactivex.internal.schedulers.ExecutorScheduler
  final DelayedRunnable = io.reactivex.internal.schedulers.ExecutorScheduler$DelayedRunnable of io.reactivex.internal.schedulers.ExecutorScheduler
  public final ExecutorWorker = io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker of io.reactivex.internal.schedulers.ExecutorScheduler
  final BooleanRunnable = io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$BooleanRunnable of io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker
  final InterruptibleRunnable = io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable of io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker