public abstract class io.reactivex.Scheduler
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: io.reactivex.Scheduler
  super_class: java.lang.Object
{
  static final long CLOCK_DRIFT_TOLERANCE_NANOSECONDS;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 99
            getstatic java.util.concurrent.TimeUnit.MINUTES:Ljava/util/concurrent/TimeUnit;
         1: .line 100
            ldc "rx2.scheduler.drift-tolerance"
            ldc 15
            invokestatic java.lang.Long.getLong:(Ljava/lang/String;J)Ljava/lang/Long;
            invokevirtual java.lang.Long.longValue:()J
         2: .line 99
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            putstatic io.reactivex.Scheduler.CLOCK_DRIFT_TOLERANCE_NANOSECONDS:J
         3: .line 101
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.reactivex.Scheduler this
         0: .line 91
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.reactivex.Scheduler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/reactivex/Scheduler;

  public static long clockDriftTolerance();
    descriptor: ()J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 110
            getstatic io.reactivex.Scheduler.CLOCK_DRIFT_TOLERANCE_NANOSECONDS:J
            lreturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public abstract io.reactivex.Scheduler$Worker createWorker();
    descriptor: ()Lio/reactivex/Scheduler$Worker;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeInvisibleAnnotations: 
      io.reactivex.annotations.NonNull()

  public long now(java.util.concurrent.TimeUnit);
    descriptor: (Ljava/util/concurrent/TimeUnit;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.reactivex.Scheduler this
        start local 1 // java.util.concurrent.TimeUnit unit
         0: .line 134
            aload 1 /* unit */
            invokestatic java.lang.System.currentTimeMillis:()J
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
            lreturn
        end local 1 // java.util.concurrent.TimeUnit unit
        end local 0 // io.reactivex.Scheduler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/reactivex/Scheduler;
            0    1     1  unit  Ljava/util/concurrent/TimeUnit;
    RuntimeInvisibleParameterAnnotations: 
      0:
        io.reactivex.annotations.NonNull()
    MethodParameters:
      Name  Flags
      unit  

  public void start();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // io.reactivex.Scheduler this
         0: .line 149
            return
        end local 0 // io.reactivex.Scheduler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/reactivex/Scheduler;

  public void shutdown();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // io.reactivex.Scheduler this
         0: .line 163
            return
        end local 0 // io.reactivex.Scheduler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/reactivex/Scheduler;

  public io.reactivex.disposables.Disposable scheduleDirect(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Lio/reactivex/disposables/Disposable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.reactivex.Scheduler this
        start local 1 // java.lang.Runnable run
         0: .line 179
            aload 0 /* this */
            aload 1 /* run */
            lconst_0
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual io.reactivex.Scheduler.scheduleDirect:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
            areturn
        end local 1 // java.lang.Runnable run
        end local 0 // io.reactivex.Scheduler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/reactivex/Scheduler;
            0    1     1   run  Ljava/lang/Runnable;
    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.Scheduler this
        start local 1 // java.lang.Runnable run
        start local 2 // long delay
        start local 4 // java.util.concurrent.TimeUnit unit
         0: .line 197
            aload 0 /* this */
            invokevirtual io.reactivex.Scheduler.createWorker:()Lio/reactivex/Scheduler$Worker;
            astore 5 /* w */
        start local 5 // io.reactivex.Scheduler$Worker w
         1: .line 199
            aload 1 /* run */
            invokestatic io.reactivex.plugins.RxJavaPlugins.onSchedule:(Ljava/lang/Runnable;)Ljava/lang/Runnable;
            astore 6 /* decoratedRun */
        start local 6 // java.lang.Runnable decoratedRun
         2: .line 201
            new io.reactivex.Scheduler$DisposeTask
            dup
            aload 6 /* decoratedRun */
            aload 5 /* w */
            invokespecial io.reactivex.Scheduler$DisposeTask.<init>:(Ljava/lang/Runnable;Lio/reactivex/Scheduler$Worker;)V
            astore 7 /* task */
        start local 7 // io.reactivex.Scheduler$DisposeTask task
         3: .line 203
            aload 5 /* w */
            aload 7 /* task */
            lload 2 /* delay */
            aload 4 /* unit */
            invokevirtual io.reactivex.Scheduler$Worker.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
            pop
         4: .line 205
            aload 7 /* task */
            areturn
        end local 7 // io.reactivex.Scheduler$DisposeTask task
        end local 6 // java.lang.Runnable decoratedRun
        end local 5 // io.reactivex.Scheduler$Worker w
        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.Scheduler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lio/reactivex/Scheduler;
            0    5     1           run  Ljava/lang/Runnable;
            0    5     2         delay  J
            0    5     4          unit  Ljava/util/concurrent/TimeUnit;
            1    5     5             w  Lio/reactivex/Scheduler$Worker;
            2    5     6  decoratedRun  Ljava/lang/Runnable;
            3    5     7          task  Lio/reactivex/Scheduler$DisposeTask;
    RuntimeInvisibleAnnotations: 
      io.reactivex.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        io.reactivex.annotations.NonNull()
      1:
      2:
        io.reactivex.annotations.NonNull()
    MethodParameters:
       Name  Flags
      run    
      delay  
      unit   

  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=11, args_size=5
        start local 0 // io.reactivex.Scheduler 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 229
            aload 0 /* this */
            invokevirtual io.reactivex.Scheduler.createWorker:()Lio/reactivex/Scheduler$Worker;
            astore 7 /* w */
        start local 7 // io.reactivex.Scheduler$Worker w
         1: .line 231
            aload 1 /* run */
            invokestatic io.reactivex.plugins.RxJavaPlugins.onSchedule:(Ljava/lang/Runnable;)Ljava/lang/Runnable;
            astore 8 /* decoratedRun */
        start local 8 // java.lang.Runnable decoratedRun
         2: .line 233
            new io.reactivex.Scheduler$PeriodicDirectTask
            dup
            aload 8 /* decoratedRun */
            aload 7 /* w */
            invokespecial io.reactivex.Scheduler$PeriodicDirectTask.<init>:(Ljava/lang/Runnable;Lio/reactivex/Scheduler$Worker;)V
            astore 9 /* periodicTask */
        start local 9 // io.reactivex.Scheduler$PeriodicDirectTask periodicTask
         3: .line 235
            aload 7 /* w */
            aload 9 /* periodicTask */
            lload 2 /* initialDelay */
            lload 4 /* period */
            aload 6 /* unit */
            invokevirtual io.reactivex.Scheduler$Worker.schedulePeriodically:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
            astore 10 /* d */
        start local 10 // io.reactivex.disposables.Disposable d
         4: .line 236
            aload 10 /* d */
            getstatic io.reactivex.internal.disposables.EmptyDisposable.INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
            if_acmpne 6
         5: .line 237
            aload 10 /* d */
            areturn
         6: .line 240
      StackMap locals: io.reactivex.Scheduler java.lang.Runnable long long java.util.concurrent.TimeUnit io.reactivex.Scheduler$Worker java.lang.Runnable io.reactivex.Scheduler$PeriodicDirectTask io.reactivex.disposables.Disposable
      StackMap stack:
            aload 9 /* periodicTask */
            areturn
        end local 10 // io.reactivex.disposables.Disposable d
        end local 9 // io.reactivex.Scheduler$PeriodicDirectTask periodicTask
        end local 8 // java.lang.Runnable decoratedRun
        end local 7 // io.reactivex.Scheduler$Worker w
        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.Scheduler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lio/reactivex/Scheduler;
            0    7     1           run  Ljava/lang/Runnable;
            0    7     2  initialDelay  J
            0    7     4        period  J
            0    7     6          unit  Ljava/util/concurrent/TimeUnit;
            1    7     7             w  Lio/reactivex/Scheduler$Worker;
            2    7     8  decoratedRun  Ljava/lang/Runnable;
            3    7     9  periodicTask  Lio/reactivex/Scheduler$PeriodicDirectTask;
            4    7    10             d  Lio/reactivex/disposables/Disposable;
    RuntimeInvisibleAnnotations: 
      io.reactivex.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        io.reactivex.annotations.NonNull()
      1:
      2:
      3:
        io.reactivex.annotations.NonNull()
    MethodParameters:
              Name  Flags
      run           
      initialDelay  
      period        
      unit          

  public <S extends io.reactivex.Scheduler extends io.reactivex.disposables.Disposable> S when(io.reactivex.functions.Function<io.reactivex.Flowable<io.reactivex.Flowable<io.reactivex.Completable>>, io.reactivex.Completable>);
    descriptor: (Lio/reactivex/functions/Function;)Lio/reactivex/Scheduler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.reactivex.Scheduler this
        start local 1 // io.reactivex.functions.Function combine
         0: .line 321
            new io.reactivex.internal.schedulers.SchedulerWhen
            dup
            aload 1 /* combine */
            aload 0 /* this */
            invokespecial io.reactivex.internal.schedulers.SchedulerWhen.<init>:(Lio/reactivex/functions/Function;Lio/reactivex/Scheduler;)V
            areturn
        end local 1 // io.reactivex.functions.Function combine
        end local 0 // io.reactivex.Scheduler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/reactivex/Scheduler;
            0    1     1  combine  Lio/reactivex/functions/Function<Lio/reactivex/Flowable<Lio/reactivex/Flowable<Lio/reactivex/Completable;>;>;Lio/reactivex/Completable;>;
    Signature: <S:Lio/reactivex/Scheduler;:Lio/reactivex/disposables/Disposable;>(Lio/reactivex/functions/Function<Lio/reactivex/Flowable<Lio/reactivex/Flowable<Lio/reactivex/Completable;>;>;Lio/reactivex/Completable;>;)TS;
    RuntimeInvisibleAnnotations: 
      io.reactivex.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        io.reactivex.annotations.NonNull()
    MethodParameters:
         Name  Flags
      combine  
}
SourceFile: "Scheduler.java"
NestMembers:
  io.reactivex.Scheduler$DisposeTask  io.reactivex.Scheduler$PeriodicDirectTask  io.reactivex.Scheduler$Worker  io.reactivex.Scheduler$Worker$PeriodicTask
InnerClasses:
  final DisposeTask = io.reactivex.Scheduler$DisposeTask of io.reactivex.Scheduler
  final PeriodicDirectTask = io.reactivex.Scheduler$PeriodicDirectTask of io.reactivex.Scheduler
  public abstract Worker = io.reactivex.Scheduler$Worker of io.reactivex.Scheduler