public final class android.os.CancellationSignal
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.os.CancellationSignal
  super_class: java.lang.Object
{
  private boolean mIsCanceled;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private android.os.CancellationSignal$OnCancelListener mOnCancelListener;
    descriptor: Landroid/os/CancellationSignal$OnCancelListener;
    flags: (0x0002) ACC_PRIVATE

  private android.os.ICancellationSignal mRemote;
    descriptor: Landroid/os/ICancellationSignal;
    flags: (0x0002) ACC_PRIVATE

  private boolean mCancelInProgress;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.os.CancellationSignal this
         0: .line 33
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 34
            return
        end local 0 // android.os.CancellationSignal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/os/CancellationSignal;

  public boolean isCanceled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.os.CancellationSignal this
         0: .line 42
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 43
            aload 0 /* this */
            getfield android.os.CancellationSignal.mIsCanceled:Z
            aload 1
            monitorexit
         2: ireturn
         3: .line 42
      StackMap locals: android.os.CancellationSignal android.os.CancellationSignal
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // android.os.CancellationSignal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/os/CancellationSignal;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  public void throwIfCanceled();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.os.CancellationSignal this
         0: .line 53
            aload 0 /* this */
            invokevirtual android.os.CancellationSignal.isCanceled:()Z
            ifeq 2
         1: .line 54
            new android.os.OperationCanceledException
            dup
            invokespecial android.os.OperationCanceledException.<init>:()V
            athrow
         2: .line 56
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.os.CancellationSignal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/os/CancellationSignal;

  public void cancel();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // android.os.CancellationSignal this
         0: .line 65
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         1: .line 66
            aload 0 /* this */
            getfield android.os.CancellationSignal.mIsCanceled:Z
            ifeq 4
         2: .line 67
            aload 3
            monitorexit
         3: return
         4: .line 69
      StackMap locals: android.os.CancellationSignal top top android.os.CancellationSignal
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.os.CancellationSignal.mIsCanceled:Z
         5: .line 70
            aload 0 /* this */
            iconst_1
            putfield android.os.CancellationSignal.mCancelInProgress:Z
         6: .line 71
            aload 0 /* this */
            getfield android.os.CancellationSignal.mOnCancelListener:Landroid/os/CancellationSignal$OnCancelListener;
            astore 1 /* listener */
        start local 1 // android.os.CancellationSignal$OnCancelListener listener
         7: .line 72
            aload 0 /* this */
            getfield android.os.CancellationSignal.mRemote:Landroid/os/ICancellationSignal;
            astore 2 /* remote */
        start local 2 // android.os.ICancellationSignal remote
         8: .line 65
            aload 3
            monitorexit
         9: goto 12
        end local 2 // android.os.ICancellationSignal remote
        end local 1 // android.os.CancellationSignal$OnCancelListener listener
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 3
            monitorexit
        11: athrow
        start local 1 // android.os.CancellationSignal$OnCancelListener listener
        start local 2 // android.os.ICancellationSignal remote
        12: .line 76
      StackMap locals: android.os.CancellationSignal android.os.CancellationSignal$OnCancelListener android.os.ICancellationSignal
      StackMap stack:
            aload 1 /* listener */
            ifnull 14
        13: .line 77
            aload 1 /* listener */
            invokeinterface android.os.CancellationSignal$OnCancelListener.onCancel:()V
        14: .line 79
      StackMap locals:
      StackMap stack:
            aload 2 /* remote */
            ifnull 28
        15: .line 81
            aload 2 /* remote */
            invokeinterface android.os.ICancellationSignal.cancel:()V
        16: .line 82
            goto 28
      StackMap locals:
      StackMap stack: android.os.RemoteException
        17: pop
        18: .line 85
            goto 28
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 3
        20: .line 86
            aload 0 /* this */
            dup
            astore 4
            monitorenter
        21: .line 87
            aload 0 /* this */
            iconst_0
            putfield android.os.CancellationSignal.mCancelInProgress:Z
        22: .line 88
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        23: .line 86
            aload 4
            monitorexit
        24: goto 27
      StackMap locals: android.os.CancellationSignal android.os.CancellationSignal$OnCancelListener android.os.ICancellationSignal java.lang.Throwable android.os.CancellationSignal
      StackMap stack: java.lang.Throwable
        25: aload 4
            monitorexit
        26: athrow
        27: .line 90
      StackMap locals:
      StackMap stack:
            aload 3
            athrow
        28: .line 86
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 4
            monitorenter
        29: .line 87
            aload 0 /* this */
            iconst_0
            putfield android.os.CancellationSignal.mCancelInProgress:Z
        30: .line 88
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        31: .line 86
            aload 4
            monitorexit
        32: goto 35
      StackMap locals: android.os.CancellationSignal android.os.CancellationSignal$OnCancelListener android.os.ICancellationSignal top android.os.CancellationSignal
      StackMap stack: java.lang.Throwable
        33: aload 4
            monitorexit
        34: athrow
        35: .line 91
      StackMap locals: android.os.CancellationSignal android.os.CancellationSignal$OnCancelListener android.os.ICancellationSignal
      StackMap stack:
            return
        end local 2 // android.os.ICancellationSignal remote
        end local 1 // android.os.CancellationSignal$OnCancelListener listener
        end local 0 // android.os.CancellationSignal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   36     0      this  Landroid/os/CancellationSignal;
            7   10     1  listener  Landroid/os/CancellationSignal$OnCancelListener;
           12   36     1  listener  Landroid/os/CancellationSignal$OnCancelListener;
            8   10     2    remote  Landroid/os/ICancellationSignal;
           12   36     2    remote  Landroid/os/ICancellationSignal;
      Exception table:
        from    to  target  type
           1     3      10  any
           4     9      10  any
          10    11      10  any
          15    16      17  Class android.os.RemoteException
          12    19      19  any
          21    24      25  any
          25    26      25  any
          29    32      33  any
          33    34      33  any

  public void setOnCancelListener(android.os.CancellationSignal$OnCancelListener);
    descriptor: (Landroid/os/CancellationSignal$OnCancelListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.os.CancellationSignal this
        start local 1 // android.os.CancellationSignal$OnCancelListener listener
         0: .line 110
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 111
            aload 0 /* this */
            invokevirtual android.os.CancellationSignal.waitForCancelFinishedLocked:()V
         2: .line 113
            aload 0 /* this */
            getfield android.os.CancellationSignal.mOnCancelListener:Landroid/os/CancellationSignal$OnCancelListener;
            aload 1 /* listener */
            if_acmpne 5
         3: .line 114
            aload 2
            monitorexit
         4: return
         5: .line 116
      StackMap locals: android.os.CancellationSignal
      StackMap stack:
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.os.CancellationSignal.mOnCancelListener:Landroid/os/CancellationSignal$OnCancelListener;
         6: .line 117
            aload 0 /* this */
            getfield android.os.CancellationSignal.mIsCanceled:Z
            ifeq 7
            aload 1 /* listener */
            ifnonnull 9
         7: .line 118
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
         8: return
         9: .line 110
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 2
            monitorexit
        12: athrow
        13: .line 121
      StackMap locals:
      StackMap stack:
            aload 1 /* listener */
            invokeinterface android.os.CancellationSignal$OnCancelListener.onCancel:()V
        14: .line 122
            return
        end local 1 // android.os.CancellationSignal$OnCancelListener listener
        end local 0 // android.os.CancellationSignal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Landroid/os/CancellationSignal;
            0   15     1  listener  Landroid/os/CancellationSignal$OnCancelListener;
      Exception table:
        from    to  target  type
           1     4      11  any
           5     8      11  any
           9    10      11  any
          11    12      11  any
    MethodParameters:
          Name  Flags
      listener  

  public void setRemote(android.os.ICancellationSignal);
    descriptor: (Landroid/os/ICancellationSignal;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.os.CancellationSignal this
        start local 1 // android.os.ICancellationSignal remote
         0: .line 138
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 139
            aload 0 /* this */
            invokevirtual android.os.CancellationSignal.waitForCancelFinishedLocked:()V
         2: .line 141
            aload 0 /* this */
            getfield android.os.CancellationSignal.mRemote:Landroid/os/ICancellationSignal;
            aload 1 /* remote */
            if_acmpne 5
         3: .line 142
            aload 2
            monitorexit
         4: return
         5: .line 144
      StackMap locals: android.os.CancellationSignal
      StackMap stack:
            aload 0 /* this */
            aload 1 /* remote */
            putfield android.os.CancellationSignal.mRemote:Landroid/os/ICancellationSignal;
         6: .line 145
            aload 0 /* this */
            getfield android.os.CancellationSignal.mIsCanceled:Z
            ifeq 7
            aload 1 /* remote */
            ifnonnull 9
         7: .line 146
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
         8: return
         9: .line 138
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 2
            monitorexit
        12: athrow
        13: .line 150
      StackMap locals:
      StackMap stack:
            aload 1 /* remote */
            invokeinterface android.os.ICancellationSignal.cancel:()V
        14: .line 151
            goto 16
      StackMap locals:
      StackMap stack: android.os.RemoteException
        15: pop
        16: .line 153
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.os.ICancellationSignal remote
        end local 0 // android.os.CancellationSignal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Landroid/os/CancellationSignal;
            0   17     1  remote  Landroid/os/ICancellationSignal;
      Exception table:
        from    to  target  type
           1     4      11  any
           5     8      11  any
           9    10      11  any
          11    12      11  any
          13    14      15  Class android.os.RemoteException
    MethodParameters:
        Name  Flags
      remote  

  private void waitForCancelFinishedLocked();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.os.CancellationSignal this
         0: .line 156
            goto 4
         1: .line 158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.wait:()V
         2: .line 159
            goto 4
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         3: pop
         4: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.os.CancellationSignal.mCancelInProgress:Z
            ifne 1
         5: .line 162
            return
        end local 0 // android.os.CancellationSignal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/os/CancellationSignal;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.InterruptedException

  public static android.os.ICancellationSignal createTransport();
    descriptor: ()Landroid/os/ICancellationSignal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 173
            new android.os.CancellationSignal$Transport
            dup
            invokespecial android.os.CancellationSignal$Transport.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static android.os.CancellationSignal fromTransport(android.os.ICancellationSignal);
    descriptor: (Landroid/os/ICancellationSignal;)Landroid/os/CancellationSignal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.os.ICancellationSignal transport
         0: .line 185
            aload 0 /* transport */
            instanceof android.os.CancellationSignal$Transport
            ifeq 2
         1: .line 186
            aload 0 /* transport */
            checkcast android.os.CancellationSignal$Transport
            getfield android.os.CancellationSignal$Transport.mCancellationSignal:Landroid/os/CancellationSignal;
            areturn
         2: .line 188
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // android.os.ICancellationSignal transport
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  transport  Landroid/os/ICancellationSignal;
    MethodParameters:
           Name  Flags
      transport  
}
SourceFile: "CancellationSignal.java"
NestMembers:
  android.os.CancellationSignal$OnCancelListener  android.os.CancellationSignal$Transport
InnerClasses:
  public abstract OnCancelListener = android.os.CancellationSignal$OnCancelListener of android.os.CancellationSignal
  private final Transport = android.os.CancellationSignal$Transport of android.os.CancellationSignal