final class com.sun.glass.ui.ios.IosTimer extends com.sun.glass.ui.Timer implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.glass.ui.ios.IosTimer
  super_class: com.sun.glass.ui.Timer
{
  private java.lang.Thread timerThread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Runnable timerRunnable;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0002) ACC_PRIVATE

  private long timerPeriod;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  protected void <init>(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.glass.ui.ios.IosTimer this
        start local 1 // java.lang.Runnable runnable
         0: .line 39
            aload 0 /* this */
            aload 1 /* runnable */
            invokespecial com.sun.glass.ui.Timer.<init>:(Ljava/lang/Runnable;)V
         1: .line 40
            return
        end local 1 // java.lang.Runnable runnable
        end local 0 // com.sun.glass.ui.ios.IosTimer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/sun/glass/ui/ios/IosTimer;
            0    2     1  runnable  Ljava/lang/Runnable;
    MethodParameters:
          Name  Flags
      runnable  

  protected native long _start(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)J
    flags: (0x0104) ACC_PROTECTED, ACC_NATIVE
    MethodParameters:
          Name  Flags
      runnable  

  protected native void _stopVsyncTimer(long);
    descriptor: (J)V
    flags: (0x0104) ACC_PROTECTED, ACC_NATIVE
    MethodParameters:
       Name  Flags
      timer  

  protected long _start(java.lang.Runnable, int);
    descriptor: (Ljava/lang/Runnable;I)J
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.glass.ui.ios.IosTimer this
        start local 1 // java.lang.Runnable runnable
        start local 2 // int period
         0: .line 48
            aload 0 /* this */
            new java.lang.Thread
            dup
            aload 0 /* this */
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
            putfield com.sun.glass.ui.ios.IosTimer.timerThread:Ljava/lang/Thread;
         1: .line 49
            aload 0 /* this */
            aload 1 /* runnable */
            putfield com.sun.glass.ui.ios.IosTimer.timerRunnable:Ljava/lang/Runnable;
         2: .line 50
            aload 0 /* this */
            iload 2 /* period */
            i2l
            putfield com.sun.glass.ui.ios.IosTimer.timerPeriod:J
         3: .line 51
            aload 0 /* this */
            getfield com.sun.glass.ui.ios.IosTimer.timerThread:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.start:()V
         4: .line 52
            aload 0 /* this */
            getfield com.sun.glass.ui.ios.IosTimer.timerThread:Ljava/lang/Thread;
            invokevirtual java.lang.Object.hashCode:()I
            i2l
            lreturn
        end local 2 // int period
        end local 1 // java.lang.Runnable runnable
        end local 0 // com.sun.glass.ui.ios.IosTimer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/sun/glass/ui/ios/IosTimer;
            0    5     1  runnable  Ljava/lang/Runnable;
            0    5     2    period  I
    MethodParameters:
          Name  Flags
      runnable  
      period    

  protected void _stop(long);
    descriptor: (J)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.glass.ui.ios.IosTimer this
        start local 1 // long timer
         0: .line 57
            aload 0 /* this */
            getfield com.sun.glass.ui.ios.IosTimer.timerThread:Ljava/lang/Thread;
            ifnull 7
         1: .line 58
            aload 0 /* this */
            getfield com.sun.glass.ui.ios.IosTimer.timerThread:Ljava/lang/Thread;
            astore 3 /* t */
        start local 3 // java.lang.Thread t
         2: .line 59
            aload 0 /* this */
            aconst_null
            putfield com.sun.glass.ui.ios.IosTimer.timerThread:Ljava/lang/Thread;
         3: .line 61
            aload 3 /* t */
            invokevirtual java.lang.Thread.join:()V
         4: .line 62
            goto 8
      StackMap locals: com.sun.glass.ui.ios.IosTimer long java.lang.Thread
      StackMap stack: java.lang.InterruptedException
         5: pop
        end local 3 // java.lang.Thread t
         6: .line 63
            goto 8
         7: .line 64
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* timer */
            invokevirtual com.sun.glass.ui.ios.IosTimer._stopVsyncTimer:(J)V
         8: .line 66
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long timer
        end local 0 // com.sun.glass.ui.ios.IosTimer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lcom/sun/glass/ui/ios/IosTimer;
            0    9     1  timer  J
            2    6     3      t  Ljava/lang/Thread;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.InterruptedException
    MethodParameters:
       Name  Flags
      timer  

  static int getMinPeriod_impl();
    descriptor: ()I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 69
            iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int getMaxPeriod_impl();
    descriptor: ()I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 73
            ldc 1000000
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=1
        start local 0 // com.sun.glass.ui.ios.IosTimer this
         0: .line 81
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 1 /* t */
        start local 1 // java.lang.Thread t
         1: .line 84
            goto 9
         2: .line 85
      StackMap locals: java.lang.Thread
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 2 /* start */
        start local 2 // long start
         3: .line 86
            aload 0 /* this */
            getfield com.sun.glass.ui.ios.IosTimer.timerRunnable:Ljava/lang/Runnable;
            invokeinterface java.lang.Runnable.run:()V
         4: .line 87
            aload 0 /* this */
            getfield com.sun.glass.ui.ios.IosTimer.timerPeriod:J
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 2 /* start */
            lsub
            lsub
            lstore 4 /* sleepTime */
        start local 4 // long sleepTime
         5: .line 88
            lload 4 /* sleepTime */
            lconst_0
            lcmp
            ifle 9
         6: .line 90
            lload 4 /* sleepTime */
            invokestatic java.lang.Thread.sleep:(J)V
         7: .line 91
            goto 9
      StackMap locals: com.sun.glass.ui.ios.IosTimer java.lang.Thread long long
      StackMap stack: java.lang.InterruptedException
         8: pop
        end local 4 // long sleepTime
        end local 2 // long start
         9: .line 84
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            aload 0 /* this */
            getfield com.sun.glass.ui.ios.IosTimer.timerThread:Ljava/lang/Thread;
            if_acmpeq 2
        10: .line 94
            return
        end local 1 // java.lang.Thread t
        end local 0 // com.sun.glass.ui.ios.IosTimer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lcom/sun/glass/ui/ios/IosTimer;
            1   11     1          t  Ljava/lang/Thread;
            3    9     2      start  J
            5    9     4  sleepTime  J
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.InterruptedException
}
SourceFile: "IosTimer.java"