final class io.reactivex.schedulers.TestScheduler$TestWorker extends io.reactivex.Scheduler$Worker
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: io.reactivex.schedulers.TestScheduler$TestWorker
  super_class: io.reactivex.Scheduler$Worker
{
  volatile boolean disposed;
    descriptor: Z
    flags: (0x0040) ACC_VOLATILE

  final io.reactivex.schedulers.TestScheduler this$0;
    descriptor: Lio/reactivex/schedulers/TestScheduler;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(io.reactivex.schedulers.TestScheduler);
    descriptor: (Lio/reactivex/schedulers/TestScheduler;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.reactivex.schedulers.TestScheduler$TestWorker this
         0: .line 147
            aload 0 /* this */
            aload 1
            putfield io.reactivex.schedulers.TestScheduler$TestWorker.this$0:Lio/reactivex/schedulers/TestScheduler;
            aload 0 /* this */
            invokespecial io.reactivex.Scheduler$Worker.<init>:()V
            return
        end local 0 // io.reactivex.schedulers.TestScheduler$TestWorker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/reactivex/schedulers/TestScheduler$TestWorker;
    MethodParameters:
        Name  Flags
      this$0  final

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.reactivex.schedulers.TestScheduler$TestWorker this
         0: .line 153
            aload 0 /* this */
            iconst_1
            putfield io.reactivex.schedulers.TestScheduler$TestWorker.disposed:Z
         1: .line 154
            return
        end local 0 // io.reactivex.schedulers.TestScheduler$TestWorker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/reactivex/schedulers/TestScheduler$TestWorker;

  public boolean isDisposed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.reactivex.schedulers.TestScheduler$TestWorker this
         0: .line 158
            aload 0 /* this */
            getfield io.reactivex.schedulers.TestScheduler$TestWorker.disposed:Z
            ireturn
        end local 0 // io.reactivex.schedulers.TestScheduler$TestWorker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/reactivex/schedulers/TestScheduler$TestWorker;

  public io.reactivex.disposables.Disposable schedule(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=13, locals=6, args_size=4
        start local 0 // io.reactivex.schedulers.TestScheduler$TestWorker this
        start local 1 // java.lang.Runnable run
        start local 2 // long delayTime
        start local 4 // java.util.concurrent.TimeUnit unit
         0: .line 164
            aload 0 /* this */
            getfield io.reactivex.schedulers.TestScheduler$TestWorker.disposed:Z
            ifeq 2
         1: .line 165
            getstatic io.reactivex.internal.disposables.EmptyDisposable.INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
            areturn
         2: .line 167
      StackMap locals:
      StackMap stack:
            new io.reactivex.schedulers.TestScheduler$TimedRunnable
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield io.reactivex.schedulers.TestScheduler$TestWorker.this$0:Lio/reactivex/schedulers/TestScheduler;
            getfield io.reactivex.schedulers.TestScheduler.time:J
            aload 4 /* unit */
            lload 2 /* delayTime */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            ladd
            aload 1 /* run */
            aload 0 /* this */
            getfield io.reactivex.schedulers.TestScheduler$TestWorker.this$0:Lio/reactivex/schedulers/TestScheduler;
            dup
            getfield io.reactivex.schedulers.TestScheduler.counter:J
            dup2_x1
            lconst_1
            ladd
            putfield io.reactivex.schedulers.TestScheduler.counter:J
            invokespecial io.reactivex.schedulers.TestScheduler$TimedRunnable.<init>:(Lio/reactivex/schedulers/TestScheduler$TestWorker;JLjava/lang/Runnable;J)V
            astore 5 /* timedAction */
        start local 5 // io.reactivex.schedulers.TestScheduler$TimedRunnable timedAction
         3: .line 168
            aload 0 /* this */
            getfield io.reactivex.schedulers.TestScheduler$TestWorker.this$0:Lio/reactivex/schedulers/TestScheduler;
            getfield io.reactivex.schedulers.TestScheduler.queue:Ljava/util/Queue;
            aload 5 /* timedAction */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
         4: .line 170
            new io.reactivex.schedulers.TestScheduler$TestWorker$QueueRemove
            dup
            aload 0 /* this */
            aload 5 /* timedAction */
            invokespecial io.reactivex.schedulers.TestScheduler$TestWorker$QueueRemove.<init>:(Lio/reactivex/schedulers/TestScheduler$TestWorker;Lio/reactivex/schedulers/TestScheduler$TimedRunnable;)V
            invokestatic io.reactivex.disposables.Disposables.fromRunnable:(Ljava/lang/Runnable;)Lio/reactivex/disposables/Disposable;
            areturn
        end local 5 // io.reactivex.schedulers.TestScheduler$TimedRunnable timedAction
        end local 4 // java.util.concurrent.TimeUnit unit
        end local 2 // long delayTime
        end local 1 // java.lang.Runnable run
        end local 0 // io.reactivex.schedulers.TestScheduler$TestWorker this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lio/reactivex/schedulers/TestScheduler$TestWorker;
            0    5     1          run  Ljava/lang/Runnable;
            0    5     2    delayTime  J
            0    5     4         unit  Ljava/util/concurrent/TimeUnit;
            3    5     5  timedAction  Lio/reactivex/schedulers/TestScheduler$TimedRunnable;
    RuntimeInvisibleAnnotations: 
      io.reactivex.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        io.reactivex.annotations.NonNull()
      1:
      2:
        io.reactivex.annotations.NonNull()
    MethodParameters:
           Name  Flags
      run        
      delayTime  
      unit       

  public io.reactivex.disposables.Disposable schedule(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Lio/reactivex/disposables/Disposable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=13, locals=3, args_size=2
        start local 0 // io.reactivex.schedulers.TestScheduler$TestWorker this
        start local 1 // java.lang.Runnable run
         0: .line 176
            aload 0 /* this */
            getfield io.reactivex.schedulers.TestScheduler$TestWorker.disposed:Z
            ifeq 2
         1: .line 177
            getstatic io.reactivex.internal.disposables.EmptyDisposable.INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
            areturn
         2: .line 179
      StackMap locals:
      StackMap stack:
            new io.reactivex.schedulers.TestScheduler$TimedRunnable
            dup
            aload 0 /* this */
            lconst_0
            aload 1 /* run */
            aload 0 /* this */
            getfield io.reactivex.schedulers.TestScheduler$TestWorker.this$0:Lio/reactivex/schedulers/TestScheduler;
            dup
            getfield io.reactivex.schedulers.TestScheduler.counter:J
            dup2_x1
            lconst_1
            ladd
            putfield io.reactivex.schedulers.TestScheduler.counter:J
            invokespecial io.reactivex.schedulers.TestScheduler$TimedRunnable.<init>:(Lio/reactivex/schedulers/TestScheduler$TestWorker;JLjava/lang/Runnable;J)V
            astore 2 /* timedAction */
        start local 2 // io.reactivex.schedulers.TestScheduler$TimedRunnable timedAction
         3: .line 180
            aload 0 /* this */
            getfield io.reactivex.schedulers.TestScheduler$TestWorker.this$0:Lio/reactivex/schedulers/TestScheduler;
            getfield io.reactivex.schedulers.TestScheduler.queue:Ljava/util/Queue;
            aload 2 /* timedAction */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
         4: .line 181
            new io.reactivex.schedulers.TestScheduler$TestWorker$QueueRemove
            dup
            aload 0 /* this */
            aload 2 /* timedAction */
            invokespecial io.reactivex.schedulers.TestScheduler$TestWorker$QueueRemove.<init>:(Lio/reactivex/schedulers/TestScheduler$TestWorker;Lio/reactivex/schedulers/TestScheduler$TimedRunnable;)V
            invokestatic io.reactivex.disposables.Disposables.fromRunnable:(Ljava/lang/Runnable;)Lio/reactivex/disposables/Disposable;
            areturn
        end local 2 // io.reactivex.schedulers.TestScheduler$TimedRunnable timedAction
        end local 1 // java.lang.Runnable run
        end local 0 // io.reactivex.schedulers.TestScheduler$TestWorker this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lio/reactivex/schedulers/TestScheduler$TestWorker;
            0    5     1          run  Ljava/lang/Runnable;
            3    5     2  timedAction  Lio/reactivex/schedulers/TestScheduler$TimedRunnable;
    RuntimeInvisibleAnnotations: 
      io.reactivex.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        io.reactivex.annotations.NonNull()
    MethodParameters:
      Name  Flags
      run   

  public long now(java.util.concurrent.TimeUnit);
    descriptor: (Ljava/util/concurrent/TimeUnit;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.reactivex.schedulers.TestScheduler$TestWorker this
        start local 1 // java.util.concurrent.TimeUnit unit
         0: .line 186
            aload 0 /* this */
            getfield io.reactivex.schedulers.TestScheduler$TestWorker.this$0:Lio/reactivex/schedulers/TestScheduler;
            aload 1 /* unit */
            invokevirtual io.reactivex.schedulers.TestScheduler.now:(Ljava/util/concurrent/TimeUnit;)J
            lreturn
        end local 1 // java.util.concurrent.TimeUnit unit
        end local 0 // io.reactivex.schedulers.TestScheduler$TestWorker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/reactivex/schedulers/TestScheduler$TestWorker;
            0    1     1  unit  Ljava/util/concurrent/TimeUnit;
    RuntimeInvisibleParameterAnnotations: 
      0:
        io.reactivex.annotations.NonNull()
    MethodParameters:
      Name  Flags
      unit  

  static io.reactivex.schedulers.TestScheduler access$0(io.reactivex.schedulers.TestScheduler$TestWorker);
    descriptor: (Lio/reactivex/schedulers/TestScheduler$TestWorker;)Lio/reactivex/schedulers/TestScheduler;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 147
            aload 0
            getfield io.reactivex.schedulers.TestScheduler$TestWorker.this$0:Lio/reactivex/schedulers/TestScheduler;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "TestScheduler.java"
NestHost: io.reactivex.schedulers.TestScheduler
InnerClasses:
  public abstract Worker = io.reactivex.Scheduler$Worker of io.reactivex.Scheduler
  final TestWorker = io.reactivex.schedulers.TestScheduler$TestWorker of io.reactivex.schedulers.TestScheduler
  final QueueRemove = io.reactivex.schedulers.TestScheduler$TestWorker$QueueRemove of io.reactivex.schedulers.TestScheduler$TestWorker
  final TimedRunnable = io.reactivex.schedulers.TestScheduler$TimedRunnable of io.reactivex.schedulers.TestScheduler