public class com.sun.tools.javac.api.JavacTaskPool
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.api.JavacTaskPool
  super_class: java.lang.Object
{
  private static final com.sun.tools.javac.api.JavacTool systemProvider;
    descriptor: Lcom/sun/tools/javac/api/JavacTool;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.Queue<com.sun.tools.javac.api.JavacTaskPool$ReusableContext> EMPTY_QUEUE;
    descriptor: Ljava/util/Queue;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Queue<Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;>;

  private final int maxPoolSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.util.List<java.lang.String>, java.util.Queue<com.sun.tools.javac.api.JavacTaskPool$ReusableContext>> options2Contexts;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/util/List<Ljava/lang/String;>;Ljava/util/Queue<Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;>;>;

  private int id;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int statReused;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int statNew;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int statPolluted;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int statRemoved;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 109
            invokestatic com.sun.tools.javac.api.JavacTool.create:()Lcom/sun/tools/javac/api/JavacTool;
            putstatic com.sun.tools.javac.api.JavacTaskPool.systemProvider:Lcom/sun/tools/javac/api/JavacTool;
         1: .line 110
            new java.util.ArrayDeque
            dup
            iconst_0
            invokespecial java.util.ArrayDeque.<init>:(I)V
            putstatic com.sun.tools.javac.api.JavacTaskPool.EMPTY_QUEUE:Ljava/util/Queue;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.api.JavacTaskPool this
        start local 1 // int maxPoolSize
         0: .line 125
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 113
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.sun.tools.javac.api.JavacTaskPool.options2Contexts:Ljava/util/Map;
         2: .line 116
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.javac.api.JavacTaskPool.statReused:I
         3: .line 117
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.javac.api.JavacTaskPool.statNew:I
         4: .line 118
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.javac.api.JavacTaskPool.statPolluted:I
         5: .line 119
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.javac.api.JavacTaskPool.statRemoved:I
         6: .line 126
            aload 0 /* this */
            iload 1 /* maxPoolSize */
            putfield com.sun.tools.javac.api.JavacTaskPool.maxPoolSize:I
         7: .line 127
            return
        end local 1 // int maxPoolSize
        end local 0 // com.sun.tools.javac.api.JavacTaskPool this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lcom/sun/tools/javac/api/JavacTaskPool;
            0    8     1  maxPoolSize  I
    MethodParameters:
             Name  Flags
      maxPoolSize  

  public <Z> Z getTask(java.io.Writer, javax.tools.JavaFileManager, javax.tools.DiagnosticListener<? super javax.tools.JavaFileObject>, java.lang.Iterable<java.lang.String>, java.lang.Iterable<java.lang.String>, java.lang.Iterable<? extends javax.tools.JavaFileObject>, com.sun.tools.javac.api.JavacTaskPool$Worker<Z>);
    descriptor: (Ljava/io/Writer;Ljavax/tools/JavaFileManager;Ljavax/tools/DiagnosticListener;Ljava/lang/Iterable;Ljava/lang/Iterable;Ljava/lang/Iterable;Lcom/sun/tools/javac/api/JavacTaskPool$Worker;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=14, args_size=8
        start local 0 // com.sun.tools.javac.api.JavacTaskPool this
        start local 1 // java.io.Writer out
        start local 2 // javax.tools.JavaFileManager fileManager
        start local 3 // javax.tools.DiagnosticListener diagnosticListener
        start local 4 // java.lang.Iterable options
        start local 5 // java.lang.Iterable classes
        start local 6 // java.lang.Iterable compilationUnits
        start local 7 // com.sun.tools.javac.api.JavacTaskPool$Worker worker
         0: .line 163
            aload 4 /* options */
            invokeinterface java.lang.Iterable.spliterator:()Ljava/util/Spliterator;
            iconst_0
            invokestatic java.util.stream.StreamSupport.stream:(Ljava/util/Spliterator;Z)Ljava/util/stream/Stream;
         1: .line 164
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  java/util/ArrayList.<init>()V (8)
                  ()Ljava/util/ArrayList;
            invokestatic java.util.stream.Collectors.toCollection:(Ljava/util/function/Supplier;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
         2: .line 162
            astore 8 /* opts */
        start local 8 // java.util.List opts
         3: .line 168
            aload 0 /* this */
            dup
            astore 10
            monitorenter
         4: .line 170
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool.options2Contexts:Ljava/util/Map;
            aload 8 /* opts */
            getstatic com.sun.tools.javac.api.JavacTaskPool.EMPTY_QUEUE:Ljava/util/Queue;
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Queue
         5: .line 169
            astore 11 /* cached */
        start local 11 // java.util.Queue cached
         6: .line 172
            aload 11 /* cached */
            invokeinterface java.util.Queue.isEmpty:()Z
            ifeq 10
         7: .line 173
            new com.sun.tools.javac.api.JavacTaskPool$ReusableContext
            dup
            aload 8 /* opts */
            invokespecial com.sun.tools.javac.api.JavacTaskPool$ReusableContext.<init>:(Ljava/util/List;)V
            astore 9 /* ctx */
        start local 9 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext ctx
         8: .line 174
            aload 0 /* this */
            dup
            getfield com.sun.tools.javac.api.JavacTaskPool.statNew:I
            iconst_1
            iadd
            putfield com.sun.tools.javac.api.JavacTaskPool.statNew:I
         9: .line 175
            goto 12
        end local 9 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext ctx
        10: .line 176
      StackMap locals: com.sun.tools.javac.api.JavacTaskPool java.io.Writer javax.tools.JavaFileManager javax.tools.DiagnosticListener java.lang.Iterable java.lang.Iterable java.lang.Iterable com.sun.tools.javac.api.JavacTaskPool$Worker java.util.List top com.sun.tools.javac.api.JavacTaskPool java.util.Queue
      StackMap stack:
            aload 11 /* cached */
            invokeinterface java.util.Queue.remove:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.api.JavacTaskPool$ReusableContext
            astore 9 /* ctx */
        start local 9 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext ctx
        11: .line 177
            aload 0 /* this */
            dup
            getfield com.sun.tools.javac.api.JavacTaskPool.statReused:I
            iconst_1
            iadd
            putfield com.sun.tools.javac.api.JavacTaskPool.statReused:I
        end local 11 // java.util.Queue cached
        12: .line 168
      StackMap locals: com.sun.tools.javac.api.JavacTaskPool java.io.Writer javax.tools.JavaFileManager javax.tools.DiagnosticListener java.lang.Iterable java.lang.Iterable java.lang.Iterable com.sun.tools.javac.api.JavacTaskPool$Worker java.util.List com.sun.tools.javac.api.JavacTaskPool$ReusableContext com.sun.tools.javac.api.JavacTaskPool
      StackMap stack:
            aload 10
            monitorexit
        13: goto 16
        end local 9 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext ctx
      StackMap locals: com.sun.tools.javac.api.JavacTaskPool java.io.Writer javax.tools.JavaFileManager javax.tools.DiagnosticListener java.lang.Iterable java.lang.Iterable java.lang.Iterable com.sun.tools.javac.api.JavacTaskPool$Worker java.util.List top com.sun.tools.javac.api.JavacTaskPool
      StackMap stack: java.lang.Throwable
        14: aload 10
            monitorexit
        15: athrow
        start local 9 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext ctx
        16: .line 181
      StackMap locals: com.sun.tools.javac.api.JavacTaskPool java.io.Writer javax.tools.JavaFileManager javax.tools.DiagnosticListener java.lang.Iterable java.lang.Iterable java.lang.Iterable com.sun.tools.javac.api.JavacTaskPool$Worker java.util.List com.sun.tools.javac.api.JavacTaskPool$ReusableContext
      StackMap stack:
            aload 9 /* ctx */
            dup
            getfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.useCount:I
            iconst_1
            iadd
            putfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.useCount:I
        17: .line 184
            getstatic com.sun.tools.javac.api.JavacTaskPool.systemProvider:Lcom/sun/tools/javac/api/JavacTool;
            aload 1 /* out */
            aload 2 /* fileManager */
            aload 3 /* diagnosticListener */
        18: .line 185
            aload 8 /* opts */
            aload 5 /* classes */
            aload 6 /* compilationUnits */
            aload 9 /* ctx */
        19: .line 184
            invokevirtual com.sun.tools.javac.api.JavacTool.getTask:(Ljava/io/Writer;Ljavax/tools/JavaFileManager;Ljavax/tools/DiagnosticListener;Ljava/lang/Iterable;Ljava/lang/Iterable;Ljava/lang/Iterable;Lcom/sun/tools/javac/util/Context;)Lcom/sun/source/util/JavacTask;
            checkcast com.sun.tools.javac.api.JavacTaskImpl
        20: .line 183
            astore 10 /* task */
        start local 10 // com.sun.tools.javac.api.JavacTaskImpl task
        21: .line 187
            aload 10 /* task */
            aload 9 /* ctx */
            invokevirtual com.sun.tools.javac.api.JavacTaskImpl.addTaskListener:(Lcom/sun/source/util/TaskListener;)V
        22: .line 189
            aload 1 /* out */
            ifnull 24
        23: .line 190
            aload 9 /* ctx */
            invokestatic com.sun.tools.javac.util.Log.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/Log;
            new java.io.PrintWriter
            dup
            aload 1 /* out */
            iconst_1
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;Z)V
            invokevirtual com.sun.tools.javac.util.Log.setWriters:(Ljava/io/PrintWriter;)V
        24: .line 193
      StackMap locals: com.sun.tools.javac.api.JavacTaskImpl
      StackMap stack:
            aload 7 /* worker */
            aload 10 /* task */
            invokeinterface com.sun.tools.javac.api.JavacTaskPool$Worker.withTask:(Lcom/sun/source/util/JavacTask;)Ljava/lang/Object;
            astore 11 /* result */
        start local 11 // java.lang.Object result
        25: .line 197
            aload 9 /* ctx */
            invokevirtual com.sun.tools.javac.api.JavacTaskPool$ReusableContext.clear:()V
        26: .line 198
            aload 9 /* ctx */
            getfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.polluted:Z
            ifeq 29
        27: .line 199
            aload 0 /* this */
            dup
            getfield com.sun.tools.javac.api.JavacTaskPool.statPolluted:I
            iconst_1
            iadd
            putfield com.sun.tools.javac.api.JavacTaskPool.statPolluted:I
        28: .line 200
            goto 48
        29: .line 201
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 10 /* task */
            invokevirtual com.sun.tools.javac.api.JavacTaskImpl.cleanup:()V
        30: .line 202
            aload 0 /* this */
            dup
            astore 12
            monitorenter
        31: .line 203
            goto 41
        32: .line 205
      StackMap locals: com.sun.tools.javac.api.JavacTaskPool
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool.options2Contexts:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
        33: .line 206
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
        34: .line 207
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
                  (Ljava/util/Queue;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        35: .line 208
            invokedynamic compare()Ljava/util/Comparator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)I
                  com/sun/tools/javac/api/JavacTaskPool.lambda$2(Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;)I (6)
                  (Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;)I
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        36: .line 209
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
        37: .line 210
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.api.JavacTaskPool$ReusableContext
        38: .line 204
            astore 13 /* toRemove */
        start local 13 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext toRemove
        39: .line 211
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool.options2Contexts:Ljava/util/Map;
            aload 13 /* toRemove */
            getfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.arguments:Ljava/util/List;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Queue
            aload 13 /* toRemove */
            invokeinterface java.util.Queue.remove:(Ljava/lang/Object;)Z
            pop
        40: .line 212
            aload 0 /* this */
            dup
            getfield com.sun.tools.javac.api.JavacTaskPool.statRemoved:I
            iconst_1
            iadd
            putfield com.sun.tools.javac.api.JavacTaskPool.statRemoved:I
        end local 13 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext toRemove
        41: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.api.JavacTaskPool.cacheSize:()J
            lconst_1
            ladd
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool.maxPoolSize:I
            i2l
            lcmp
            ifgt 32
        42: .line 214
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool.options2Contexts:Ljava/util/Map;
            aload 9 /* ctx */
            getfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.arguments:Ljava/util/List;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/sun/tools/javac/api/JavacTaskPool.lambda$3(Ljava/util/List;)Ljava/util/Queue; (6)
                  (Ljava/util/List;)Ljava/util/Queue;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.Queue
            aload 9 /* ctx */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
        43: .line 215
            aload 9 /* ctx */
            aload 0 /* this */
            dup
            getfield com.sun.tools.javac.api.JavacTaskPool.id:I
            dup_x1
            iconst_1
            iadd
            putfield com.sun.tools.javac.api.JavacTaskPool.id:I
            i2l
            putfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.timeStamp:J
        44: .line 202
            aload 12
            monitorexit
        45: goto 48
      StackMap locals:
      StackMap stack: java.lang.Throwable
        46: aload 12
            monitorexit
        47: athrow
        48: .line 219
      StackMap locals:
      StackMap stack:
            aload 11 /* result */
            areturn
        end local 11 // java.lang.Object result
        end local 10 // com.sun.tools.javac.api.JavacTaskImpl task
        end local 9 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext ctx
        end local 8 // java.util.List opts
        end local 7 // com.sun.tools.javac.api.JavacTaskPool$Worker worker
        end local 6 // java.lang.Iterable compilationUnits
        end local 5 // java.lang.Iterable classes
        end local 4 // java.lang.Iterable options
        end local 3 // javax.tools.DiagnosticListener diagnosticListener
        end local 2 // javax.tools.JavaFileManager fileManager
        end local 1 // java.io.Writer out
        end local 0 // com.sun.tools.javac.api.JavacTaskPool this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   49     0                this  Lcom/sun/tools/javac/api/JavacTaskPool;
            0   49     1                 out  Ljava/io/Writer;
            0   49     2         fileManager  Ljavax/tools/JavaFileManager;
            0   49     3  diagnosticListener  Ljavax/tools/DiagnosticListener<-Ljavax/tools/JavaFileObject;>;
            0   49     4             options  Ljava/lang/Iterable<Ljava/lang/String;>;
            0   49     5             classes  Ljava/lang/Iterable<Ljava/lang/String;>;
            0   49     6    compilationUnits  Ljava/lang/Iterable<+Ljavax/tools/JavaFileObject;>;
            0   49     7              worker  Lcom/sun/tools/javac/api/JavacTaskPool$Worker<TZ;>;
            3   49     8                opts  Ljava/util/List<Ljava/lang/String;>;
            8   10     9                 ctx  Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;
           11   14     9                 ctx  Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;
           16   49     9                 ctx  Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;
            6   12    11              cached  Ljava/util/Queue<Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;>;
           21   49    10                task  Lcom/sun/tools/javac/api/JavacTaskImpl;
           25   49    11              result  TZ;
           39   41    13            toRemove  Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;
      Exception table:
        from    to  target  type
           4    13      14  any
          14    15      14  any
          31    45      46  any
          46    47      46  any
    Signature: <Z:Ljava/lang/Object;>(Ljava/io/Writer;Ljavax/tools/JavaFileManager;Ljavax/tools/DiagnosticListener<-Ljavax/tools/JavaFileObject;>;Ljava/lang/Iterable<Ljava/lang/String;>;Ljava/lang/Iterable<Ljava/lang/String;>;Ljava/lang/Iterable<+Ljavax/tools/JavaFileObject;>;Lcom/sun/tools/javac/api/JavacTaskPool$Worker<TZ;>;)TZ;
    MethodParameters:
                    Name  Flags
      out                 
      fileManager         
      diagnosticListener  
      options             
      classes             
      compilationUnits    
      worker              

  private long cacheSize();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.api.JavacTaskPool this
         0: .line 223
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool.options2Contexts:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
                  (Ljava/util/Queue;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.count:()J
            lreturn
        end local 0 // com.sun.tools.javac.api.JavacTaskPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/api/JavacTaskPool;

  public void printStatistics(java.io.PrintStream);
    descriptor: (Ljava/io/PrintStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.api.JavacTaskPool this
        start local 1 // java.io.PrintStream out
         0: .line 227
            aload 1 /* out */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool.statReused:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " reused Contexts"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 228
            aload 1 /* out */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool.statNew:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " newly created Contexts"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 229
            aload 1 /* out */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool.statPolluted:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " polluted Contexts"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 230
            aload 1 /* out */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool.statRemoved:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " removed Contexts"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 231
            return
        end local 1 // java.io.PrintStream out
        end local 0 // com.sun.tools.javac.api.JavacTaskPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/javac/api/JavacTaskPool;
            0    5     1   out  Ljava/io/PrintStream;
    MethodParameters:
      Name  Flags
      out   

  private static int lambda$2(com.sun.tools.javac.api.JavacTaskPool$ReusableContext, com.sun.tools.javac.api.JavacTaskPool$ReusableContext);
    descriptor: (Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext c1
        start local 1 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext c2
         0: .line 208
            aload 0 /* c1 */
            getfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.timeStamp:J
            aload 1 /* c2 */
            getfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.timeStamp:J
            lcmp
            ifge 1
            iconst_m1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext c2
        end local 0 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext c1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    c1  Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;
            0    3     1    c2  Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;

  private static java.util.Queue lambda$3(java.util.List);
    descriptor: (Ljava/util/List;)Ljava/util/Queue;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.List x
         0: .line 214
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            areturn
        end local 0 // java.util.List x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     x  Ljava/util/List<Ljava/lang/String;>;
}
SourceFile: "JavacTaskPool.java"
NestMembers:
  com.sun.tools.javac.api.JavacTaskPool$ReusableContext  com.sun.tools.javac.api.JavacTaskPool$ReusableContext$1  com.sun.tools.javac.api.JavacTaskPool$ReusableContext$ReusableJavaCompiler  com.sun.tools.javac.api.JavacTaskPool$ReusableContext$ReusableLog  com.sun.tools.javac.api.JavacTaskPool$ReusableContext$ReusableLog$1  com.sun.tools.javac.api.JavacTaskPool$Worker
InnerClasses:
  ReusableContext = com.sun.tools.javac.api.JavacTaskPool$ReusableContext of com.sun.tools.javac.api.JavacTaskPool
  public abstract Worker = com.sun.tools.javac.api.JavacTaskPool$Worker of com.sun.tools.javac.api.JavacTaskPool
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles