public final class org.eclipse.core.internal.jobs.JobQueue
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.eclipse.core.internal.jobs.JobQueue
  super_class: java.lang.Object
{
  protected final org.eclipse.core.internal.jobs.InternalJob dummy;
    descriptor: Lorg/eclipse/core/internal/jobs/InternalJob;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final boolean allowConflictOvertaking;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean allowPriorityOvertaking;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.core.internal.jobs.JobQueue this
        start local 1 // boolean allowConflictOvertaking
         0: .line 42
            aload 0 /* this */
            iload 1 /* allowConflictOvertaking */
            iconst_1
            invokespecial org.eclipse.core.internal.jobs.JobQueue.<init>:(ZZ)V
         1: .line 43
            return
        end local 1 // boolean allowConflictOvertaking
        end local 0 // org.eclipse.core.internal.jobs.JobQueue this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    2     0                     this  Lorg/eclipse/core/internal/jobs/JobQueue;
            0    2     1  allowConflictOvertaking  Z
    MethodParameters:
                         Name  Flags
      allowConflictOvertaking  

  public void <init>(boolean, boolean);
    descriptor: (ZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.eclipse.core.internal.jobs.JobQueue this
        start local 1 // boolean allowConflictOvertaking
        start local 2 // boolean allowPriorityOvertaking
         0: .line 48
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 49
            aload 0 /* this */
            iload 2 /* allowPriorityOvertaking */
            putfield org.eclipse.core.internal.jobs.JobQueue.allowPriorityOvertaking:Z
         2: .line 51
            aload 0 /* this */
            new org.eclipse.core.internal.jobs.JobQueue$1
            dup
            aload 0 /* this */
            ldc "Queue-Head"
            invokespecial org.eclipse.core.internal.jobs.JobQueue$1.<init>:(Lorg/eclipse/core/internal/jobs/JobQueue;Ljava/lang/String;)V
            putfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
         3: .line 57
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.setNext:(Lorg/eclipse/core/internal/jobs/InternalJob;)V
         4: .line 58
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.setPrevious:(Lorg/eclipse/core/internal/jobs/InternalJob;)V
         5: .line 59
            aload 0 /* this */
            iload 1 /* allowConflictOvertaking */
            putfield org.eclipse.core.internal.jobs.JobQueue.allowConflictOvertaking:Z
         6: .line 60
            return
        end local 2 // boolean allowPriorityOvertaking
        end local 1 // boolean allowConflictOvertaking
        end local 0 // org.eclipse.core.internal.jobs.JobQueue this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    7     0                     this  Lorg/eclipse/core/internal/jobs/JobQueue;
            0    7     1  allowConflictOvertaking  Z
            0    7     2  allowPriorityOvertaking  Z
    MethodParameters:
                         Name  Flags
      allowConflictOvertaking  
      allowPriorityOvertaking  

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.core.internal.jobs.JobQueue this
         0: .line 66
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.setNext:(Lorg/eclipse/core/internal/jobs/InternalJob;)V
         1: .line 67
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.setPrevious:(Lorg/eclipse/core/internal/jobs/InternalJob;)V
         2: .line 68
            return
        end local 0 // org.eclipse.core.internal.jobs.JobQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/core/internal/jobs/JobQueue;

  public org.eclipse.core.internal.jobs.InternalJob dequeue();
    descriptor: ()Lorg/eclipse/core/internal/jobs/InternalJob;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.eclipse.core.internal.jobs.JobQueue this
         0: .line 74
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.previous:()Lorg/eclipse/core/internal/jobs/InternalJob;
            astore 1 /* toRemove */
        start local 1 // org.eclipse.core.internal.jobs.InternalJob toRemove
         1: .line 75
            aload 1 /* toRemove */
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            if_acmpne 3
         2: .line 76
            aconst_null
            areturn
         3: .line 77
      StackMap locals: org.eclipse.core.internal.jobs.InternalJob
      StackMap stack:
            aload 1 /* toRemove */
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.remove:()Lorg/eclipse/core/internal/jobs/InternalJob;
            areturn
        end local 1 // org.eclipse.core.internal.jobs.InternalJob toRemove
        end local 0 // org.eclipse.core.internal.jobs.JobQueue this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/eclipse/core/internal/jobs/JobQueue;
            1    4     1  toRemove  Lorg/eclipse/core/internal/jobs/InternalJob;

  public void enqueue(org.eclipse.core.internal.jobs.InternalJob);
    descriptor: (Lorg/eclipse/core/internal/jobs/InternalJob;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.eclipse.core.internal.jobs.JobQueue this
        start local 1 // org.eclipse.core.internal.jobs.InternalJob newEntry
         0: .line 85
            aload 1 /* newEntry */
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.next:()Lorg/eclipse/core/internal/jobs/InternalJob;
            ifnonnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: invokestatic org.eclipse.core.runtime.Assert.isTrue:(Z)Z
            pop
         3: .line 86
            aload 1 /* newEntry */
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.previous:()Lorg/eclipse/core/internal/jobs/InternalJob;
            ifnonnull 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: invokestatic org.eclipse.core.runtime.Assert.isTrue:(Z)Z
            pop
         6: .line 87
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.next:()Lorg/eclipse/core/internal/jobs/InternalJob;
            astore 2 /* tail */
        start local 2 // org.eclipse.core.internal.jobs.InternalJob tail
         7: .line 89
            goto 9
         8: .line 90
      StackMap locals: org.eclipse.core.internal.jobs.InternalJob
      StackMap stack:
            aload 2 /* tail */
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.next:()Lorg/eclipse/core/internal/jobs/InternalJob;
            astore 2 /* tail */
         9: .line 89
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* newEntry */
            aload 2 /* tail */
            invokevirtual org.eclipse.core.internal.jobs.JobQueue.canOvertake:(Lorg/eclipse/core/internal/jobs/InternalJob;Lorg/eclipse/core/internal/jobs/InternalJob;)Z
            ifne 8
        10: .line 92
            aload 2 /* tail */
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.previous:()Lorg/eclipse/core/internal/jobs/InternalJob;
            astore 3 /* tailPrevious */
        start local 3 // org.eclipse.core.internal.jobs.InternalJob tailPrevious
        11: .line 93
            aload 1 /* newEntry */
            aload 2 /* tail */
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.setNext:(Lorg/eclipse/core/internal/jobs/InternalJob;)V
        12: .line 94
            aload 1 /* newEntry */
            aload 3 /* tailPrevious */
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.setPrevious:(Lorg/eclipse/core/internal/jobs/InternalJob;)V
        13: .line 95
            aload 3 /* tailPrevious */
            aload 1 /* newEntry */
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.setNext:(Lorg/eclipse/core/internal/jobs/InternalJob;)V
        14: .line 96
            aload 2 /* tail */
            aload 1 /* newEntry */
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.setPrevious:(Lorg/eclipse/core/internal/jobs/InternalJob;)V
        15: .line 97
            return
        end local 3 // org.eclipse.core.internal.jobs.InternalJob tailPrevious
        end local 2 // org.eclipse.core.internal.jobs.InternalJob tail
        end local 1 // org.eclipse.core.internal.jobs.InternalJob newEntry
        end local 0 // org.eclipse.core.internal.jobs.JobQueue this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lorg/eclipse/core/internal/jobs/JobQueue;
            0   16     1      newEntry  Lorg/eclipse/core/internal/jobs/InternalJob;
            7   16     2          tail  Lorg/eclipse/core/internal/jobs/InternalJob;
           11   16     3  tailPrevious  Lorg/eclipse/core/internal/jobs/InternalJob;
    MethodParameters:
          Name  Flags
      newEntry  

  private boolean canOvertake(org.eclipse.core.internal.jobs.InternalJob, org.eclipse.core.internal.jobs.InternalJob);
    descriptor: (Lorg/eclipse/core/internal/jobs/InternalJob;Lorg/eclipse/core/internal/jobs/InternalJob;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.eclipse.core.internal.jobs.JobQueue this
        start local 1 // org.eclipse.core.internal.jobs.InternalJob newEntry
        start local 2 // org.eclipse.core.internal.jobs.InternalJob queueEntry
         0: .line 106
            aload 2 /* queueEntry */
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            if_acmpne 2
         1: .line 107
            iconst_0
            ireturn
         2: .line 109
      StackMap locals:
      StackMap stack:
            aload 1 /* newEntry */
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.getWaitQueueStamp:()J
            lconst_0
            lcmp
            ifle 4
            aload 1 /* newEntry */
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.getWaitQueueStamp:()J
            aload 2 /* queueEntry */
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.getWaitQueueStamp:()J
            lcmp
            ifge 4
         3: .line 110
            iconst_1
            ireturn
         4: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.allowPriorityOvertaking:Z
            ifeq 6
            aload 2 /* queueEntry */
            aload 1 /* newEntry */
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.compareTo:(Ljava/lang/Object;)I
            iflt 6
         5: .line 113
            iconst_0
            ireturn
         6: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.allowConflictOvertaking:Z
            ifne 7
            aload 1 /* newEntry */
            aload 2 /* queueEntry */
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.isConflicting:(Lorg/eclipse/core/internal/jobs/InternalJob;)Z
            ifeq 7
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_1
            ireturn
        end local 2 // org.eclipse.core.internal.jobs.InternalJob queueEntry
        end local 1 // org.eclipse.core.internal.jobs.InternalJob newEntry
        end local 0 // org.eclipse.core.internal.jobs.JobQueue this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lorg/eclipse/core/internal/jobs/JobQueue;
            0    8     1    newEntry  Lorg/eclipse/core/internal/jobs/InternalJob;
            0    8     2  queueEntry  Lorg/eclipse/core/internal/jobs/InternalJob;
    MethodParameters:
            Name  Flags
      newEntry    
      queueEntry  

  public void remove(org.eclipse.core.internal.jobs.InternalJob);
    descriptor: (Lorg/eclipse/core/internal/jobs/InternalJob;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.eclipse.core.internal.jobs.JobQueue this
        start local 1 // org.eclipse.core.internal.jobs.InternalJob toRemove
         0: .line 122
            aload 1 /* toRemove */
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.remove:()Lorg/eclipse/core/internal/jobs/InternalJob;
            pop
         1: .line 124
            return
        end local 1 // org.eclipse.core.internal.jobs.InternalJob toRemove
        end local 0 // org.eclipse.core.internal.jobs.JobQueue this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/eclipse/core/internal/jobs/JobQueue;
            0    2     1  toRemove  Lorg/eclipse/core/internal/jobs/InternalJob;
    MethodParameters:
          Name  Flags
      toRemove  

  public void resort(org.eclipse.core.internal.jobs.InternalJob);
    descriptor: (Lorg/eclipse/core/internal/jobs/InternalJob;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.core.internal.jobs.JobQueue this
        start local 1 // org.eclipse.core.internal.jobs.InternalJob entry
         0: .line 131
            aload 0 /* this */
            aload 1 /* entry */
            invokevirtual org.eclipse.core.internal.jobs.JobQueue.remove:(Lorg/eclipse/core/internal/jobs/InternalJob;)V
         1: .line 132
            aload 0 /* this */
            aload 1 /* entry */
            invokevirtual org.eclipse.core.internal.jobs.JobQueue.enqueue:(Lorg/eclipse/core/internal/jobs/InternalJob;)V
         2: .line 133
            return
        end local 1 // org.eclipse.core.internal.jobs.InternalJob entry
        end local 0 // org.eclipse.core.internal.jobs.JobQueue this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/eclipse/core/internal/jobs/JobQueue;
            0    3     1  entry  Lorg/eclipse/core/internal/jobs/InternalJob;
    MethodParameters:
       Name  Flags
      entry  

  public boolean isEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.core.internal.jobs.JobQueue this
         0: .line 139
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.next:()Lorg/eclipse/core/internal/jobs/InternalJob;
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.eclipse.core.internal.jobs.JobQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/core/internal/jobs/JobQueue;

  public org.eclipse.core.internal.jobs.InternalJob peek();
    descriptor: ()Lorg/eclipse/core/internal/jobs/InternalJob;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.core.internal.jobs.JobQueue this
         0: .line 146
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.previous:()Lorg/eclipse/core/internal/jobs/InternalJob;
            aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            if_acmpne 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.eclipse.core.internal.jobs.JobQueue.dummy:Lorg/eclipse/core/internal/jobs/InternalJob;
            invokevirtual org.eclipse.core.internal.jobs.InternalJob.previous:()Lorg/eclipse/core/internal/jobs/InternalJob;
      StackMap locals:
      StackMap stack: org.eclipse.core.internal.jobs.InternalJob
         2: areturn
        end local 0 // org.eclipse.core.internal.jobs.JobQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/core/internal/jobs/JobQueue;

  public java.util.Iterator iterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.eclipse.core.internal.jobs.JobQueue this
         0: .line 150
            new org.eclipse.core.internal.jobs.JobQueue$2
            dup
            aload 0 /* this */
            invokespecial org.eclipse.core.internal.jobs.JobQueue$2.<init>:(Lorg/eclipse/core/internal/jobs/JobQueue;)V
            areturn
        end local 0 // org.eclipse.core.internal.jobs.JobQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/core/internal/jobs/JobQueue;
}
SourceFile: "JobQueue.java"
NestMembers:
  org.eclipse.core.internal.jobs.JobQueue$1  org.eclipse.core.internal.jobs.JobQueue$2
InnerClasses:
  org.eclipse.core.internal.jobs.JobQueue$1
  org.eclipse.core.internal.jobs.JobQueue$2