public class io.reactivex.internal.schedulers.SchedulerWhen extends io.reactivex.Scheduler implements io.reactivex.disposables.Disposable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.reactivex.internal.schedulers.SchedulerWhen
  super_class: io.reactivex.Scheduler
{
  private final io.reactivex.Scheduler actualScheduler;
    descriptor: Lio/reactivex/Scheduler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.reactivex.processors.FlowableProcessor<io.reactivex.Flowable<io.reactivex.Completable>> workerProcessor;
    descriptor: Lio/reactivex/processors/FlowableProcessor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lio/reactivex/processors/FlowableProcessor<Lio/reactivex/Flowable<Lio/reactivex/Completable;>;>;

  private io.reactivex.disposables.Disposable disposable;
    descriptor: Lio/reactivex/disposables/Disposable;
    flags: (0x0002) ACC_PRIVATE

  static final io.reactivex.disposables.Disposable SUBSCRIBED;
    descriptor: Lio/reactivex/disposables/Disposable;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final io.reactivex.disposables.Disposable DISPOSED;
    descriptor: Lio/reactivex/disposables/Disposable;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 153
            new io.reactivex.internal.schedulers.SchedulerWhen$SubscribedDisposable
            dup
            invokespecial io.reactivex.internal.schedulers.SchedulerWhen$SubscribedDisposable.<init>:()V
            putstatic io.reactivex.internal.schedulers.SchedulerWhen.SUBSCRIBED:Lio/reactivex/disposables/Disposable;
         1: .line 155
            invokestatic io.reactivex.disposables.Disposables.disposed:()Lio/reactivex/disposables/Disposable;
            putstatic io.reactivex.internal.schedulers.SchedulerWhen.DISPOSED:Lio/reactivex/disposables/Disposable;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(io.reactivex.functions.Function<io.reactivex.Flowable<io.reactivex.Flowable<io.reactivex.Completable>>, io.reactivex.Completable>, io.reactivex.Scheduler);
    descriptor: (Lio/reactivex/functions/Function;Lio/reactivex/Scheduler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.reactivex.internal.schedulers.SchedulerWhen this
        start local 1 // io.reactivex.functions.Function combine
        start local 2 // io.reactivex.Scheduler actualScheduler
         0: .line 110
            aload 0 /* this */
            invokespecial io.reactivex.Scheduler.<init>:()V
         1: .line 111
            aload 0 /* this */
            aload 2 /* actualScheduler */
            putfield io.reactivex.internal.schedulers.SchedulerWhen.actualScheduler:Lio/reactivex/Scheduler;
         2: .line 113
            aload 0 /* this */
            invokestatic io.reactivex.processors.UnicastProcessor.create:()Lio/reactivex/processors/UnicastProcessor;
            invokevirtual io.reactivex.processors.UnicastProcessor.toSerialized:()Lio/reactivex/processors/FlowableProcessor;
            putfield io.reactivex.internal.schedulers.SchedulerWhen.workerProcessor:Lio/reactivex/processors/FlowableProcessor;
         3: .line 117
            aload 0 /* this */
            aload 1 /* combine */
            aload 0 /* this */
            getfield io.reactivex.internal.schedulers.SchedulerWhen.workerProcessor:Lio/reactivex/processors/FlowableProcessor;
            invokeinterface io.reactivex.functions.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.reactivex.Completable
            invokevirtual io.reactivex.Completable.subscribe:()Lio/reactivex/disposables/Disposable;
            putfield io.reactivex.internal.schedulers.SchedulerWhen.disposable:Lio/reactivex/disposables/Disposable;
         4: .line 118
            goto 7
      StackMap locals: io.reactivex.internal.schedulers.SchedulerWhen io.reactivex.functions.Function io.reactivex.Scheduler
      StackMap stack: java.lang.Throwable
         5: astore 3 /* e */
        start local 3 // java.lang.Throwable e
         6: .line 119
            aload 3 /* e */
            invokestatic io.reactivex.internal.util.ExceptionHelper.wrapOrThrow:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable e
         7: .line 121
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.reactivex.Scheduler actualScheduler
        end local 1 // io.reactivex.functions.Function combine
        end local 0 // io.reactivex.internal.schedulers.SchedulerWhen this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lio/reactivex/internal/schedulers/SchedulerWhen;
            0    8     1          combine  Lio/reactivex/functions/Function<Lio/reactivex/Flowable<Lio/reactivex/Flowable<Lio/reactivex/Completable;>;>;Lio/reactivex/Completable;>;
            0    8     2  actualScheduler  Lio/reactivex/Scheduler;
            6    7     3                e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Throwable
    Signature: (Lio/reactivex/functions/Function<Lio/reactivex/Flowable<Lio/reactivex/Flowable<Lio/reactivex/Completable;>;>;Lio/reactivex/Completable;>;Lio/reactivex/Scheduler;)V
    MethodParameters:
                 Name  Flags
      combine          
      actualScheduler  

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.reactivex.internal.schedulers.SchedulerWhen this
         0: .line 125
            aload 0 /* this */
            getfield io.reactivex.internal.schedulers.SchedulerWhen.disposable:Lio/reactivex/disposables/Disposable;
            invokeinterface io.reactivex.disposables.Disposable.dispose:()V
         1: .line 126
            return
        end local 0 // io.reactivex.internal.schedulers.SchedulerWhen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/reactivex/internal/schedulers/SchedulerWhen;

  public boolean isDisposed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.reactivex.internal.schedulers.SchedulerWhen this
         0: .line 130
            aload 0 /* this */
            getfield io.reactivex.internal.schedulers.SchedulerWhen.disposable:Lio/reactivex/disposables/Disposable;
            invokeinterface io.reactivex.disposables.Disposable.isDisposed:()Z
            ireturn
        end local 0 // io.reactivex.internal.schedulers.SchedulerWhen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/reactivex/internal/schedulers/SchedulerWhen;

  public io.reactivex.Scheduler$Worker createWorker();
    descriptor: ()Lio/reactivex/Scheduler$Worker;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // io.reactivex.internal.schedulers.SchedulerWhen this
         0: .line 136
            aload 0 /* this */
            getfield io.reactivex.internal.schedulers.SchedulerWhen.actualScheduler:Lio/reactivex/Scheduler;
            invokevirtual io.reactivex.Scheduler.createWorker:()Lio/reactivex/Scheduler$Worker;
            astore 1 /* actualWorker */
        start local 1 // io.reactivex.Scheduler$Worker actualWorker
         1: .line 139
            invokestatic io.reactivex.processors.UnicastProcessor.create:()Lio/reactivex/processors/UnicastProcessor;
            invokevirtual io.reactivex.processors.UnicastProcessor.toSerialized:()Lio/reactivex/processors/FlowableProcessor;
            astore 2 /* actionProcessor */
        start local 2 // io.reactivex.processors.FlowableProcessor actionProcessor
         2: .line 141
            aload 2 /* actionProcessor */
            new io.reactivex.internal.schedulers.SchedulerWhen$CreateWorkerFunction
            dup
            aload 1 /* actualWorker */
            invokespecial io.reactivex.internal.schedulers.SchedulerWhen$CreateWorkerFunction.<init>:(Lio/reactivex/Scheduler$Worker;)V
            invokevirtual io.reactivex.processors.FlowableProcessor.map:(Lio/reactivex/functions/Function;)Lio/reactivex/Flowable;
            astore 3 /* actions */
        start local 3 // io.reactivex.Flowable actions
         3: .line 144
            new io.reactivex.internal.schedulers.SchedulerWhen$QueueWorker
            dup
            aload 2 /* actionProcessor */
            aload 1 /* actualWorker */
            invokespecial io.reactivex.internal.schedulers.SchedulerWhen$QueueWorker.<init>:(Lio/reactivex/processors/FlowableProcessor;Lio/reactivex/Scheduler$Worker;)V
            astore 4 /* worker */
        start local 4 // io.reactivex.Scheduler$Worker worker
         4: .line 147
            aload 0 /* this */
            getfield io.reactivex.internal.schedulers.SchedulerWhen.workerProcessor:Lio/reactivex/processors/FlowableProcessor;
            aload 3 /* actions */
            invokevirtual io.reactivex.processors.FlowableProcessor.onNext:(Ljava/lang/Object;)V
         5: .line 150
            aload 4 /* worker */
            areturn
        end local 4 // io.reactivex.Scheduler$Worker worker
        end local 3 // io.reactivex.Flowable actions
        end local 2 // io.reactivex.processors.FlowableProcessor actionProcessor
        end local 1 // io.reactivex.Scheduler$Worker actualWorker
        end local 0 // io.reactivex.internal.schedulers.SchedulerWhen this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lio/reactivex/internal/schedulers/SchedulerWhen;
            1    6     1     actualWorker  Lio/reactivex/Scheduler$Worker;
            2    6     2  actionProcessor  Lio/reactivex/processors/FlowableProcessor<Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;>;
            3    6     3          actions  Lio/reactivex/Flowable<Lio/reactivex/Completable;>;
            4    6     4           worker  Lio/reactivex/Scheduler$Worker;
    RuntimeInvisibleAnnotations: 
      io.reactivex.annotations.NonNull()
}
SourceFile: "SchedulerWhen.java"
NestMembers:
  io.reactivex.internal.schedulers.SchedulerWhen$CreateWorkerFunction  io.reactivex.internal.schedulers.SchedulerWhen$CreateWorkerFunction$WorkerCompletable  io.reactivex.internal.schedulers.SchedulerWhen$DelayedAction  io.reactivex.internal.schedulers.SchedulerWhen$ImmediateAction  io.reactivex.internal.schedulers.SchedulerWhen$OnCompletedAction  io.reactivex.internal.schedulers.SchedulerWhen$QueueWorker  io.reactivex.internal.schedulers.SchedulerWhen$ScheduledAction  io.reactivex.internal.schedulers.SchedulerWhen$SubscribedDisposable
InnerClasses:
  public abstract Worker = io.reactivex.Scheduler$Worker of io.reactivex.Scheduler
  final CreateWorkerFunction = io.reactivex.internal.schedulers.SchedulerWhen$CreateWorkerFunction of io.reactivex.internal.schedulers.SchedulerWhen
  DelayedAction = io.reactivex.internal.schedulers.SchedulerWhen$DelayedAction of io.reactivex.internal.schedulers.SchedulerWhen
  ImmediateAction = io.reactivex.internal.schedulers.SchedulerWhen$ImmediateAction of io.reactivex.internal.schedulers.SchedulerWhen
  OnCompletedAction = io.reactivex.internal.schedulers.SchedulerWhen$OnCompletedAction of io.reactivex.internal.schedulers.SchedulerWhen
  final QueueWorker = io.reactivex.internal.schedulers.SchedulerWhen$QueueWorker of io.reactivex.internal.schedulers.SchedulerWhen
  abstract ScheduledAction = io.reactivex.internal.schedulers.SchedulerWhen$ScheduledAction of io.reactivex.internal.schedulers.SchedulerWhen
  final SubscribedDisposable = io.reactivex.internal.schedulers.SchedulerWhen$SubscribedDisposable of io.reactivex.internal.schedulers.SchedulerWhen