public class org.ehcache.impl.internal.store.disk.DiskWriteThreadPool implements org.terracotta.offheapstore.util.Factory<java.util.concurrent.ExecutorService>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.ehcache.impl.internal.store.disk.DiskWriteThreadPool
  super_class: java.lang.Object
{
  private final java.util.List<java.util.concurrent.ExecutorService> writers;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/util/concurrent/ExecutorService;>;

  private final org.ehcache.core.spi.service.ExecutionService executionService;
    descriptor: Lorg/ehcache/core/spi/service/ExecutionService;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String poolAlias;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  public void <init>(org.ehcache.core.spi.service.ExecutionService, java.lang.String, int);
    descriptor: (Lorg/ehcache/core/spi/service/ExecutionService;Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.ehcache.impl.internal.store.disk.DiskWriteThreadPool this
        start local 1 // org.ehcache.core.spi.service.ExecutionService executionService
        start local 2 // java.lang.String poolAlias
        start local 3 // int threads
         0: .line 37
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 30
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
            putfield org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.writers:Ljava/util/List;
         2: .line 35
            aload 0 /* this */
            iconst_0
            putfield org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.index:I
         3: .line 38
            aload 0 /* this */
            aload 1 /* executionService */
            putfield org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.executionService:Lorg/ehcache/core/spi/service/ExecutionService;
         4: .line 39
            aload 0 /* this */
            aload 2 /* poolAlias */
            putfield org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.poolAlias:Ljava/lang/String;
         5: .line 40
            aload 0 /* this */
            iload 3 /* threads */
            putfield org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.threads:I
         6: .line 41
            return
        end local 3 // int threads
        end local 2 // java.lang.String poolAlias
        end local 1 // org.ehcache.core.spi.service.ExecutionService executionService
        end local 0 // org.ehcache.impl.internal.store.disk.DiskWriteThreadPool this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lorg/ehcache/impl/internal/store/disk/DiskWriteThreadPool;
            0    7     1  executionService  Lorg/ehcache/core/spi/service/ExecutionService;
            0    7     2         poolAlias  Ljava/lang/String;
            0    7     3           threads  I
    MethodParameters:
                  Name  Flags
      executionService  
      poolAlias         
      threads           

  public java.util.concurrent.ExecutorService newInstance();
    descriptor: ()Ljava/util/concurrent/ExecutorService;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.ehcache.impl.internal.store.disk.DiskWriteThreadPool this
         0: .line 46
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.writers:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.threads:I
            if_icmpge 4
         1: .line 47
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.executionService:Lorg/ehcache/core/spi/service/ExecutionService;
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.poolAlias:Ljava/lang/String;
            new java.util.concurrent.LinkedBlockingQueue
            dup
            invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
            invokeinterface org.ehcache.core.spi.service.ExecutionService.getOrderedExecutor:(Ljava/lang/String;Ljava/util/concurrent/BlockingQueue;)Ljava/util/concurrent/ExecutorService;
            astore 1 /* writer */
        start local 1 // java.util.concurrent.ExecutorService writer
         2: .line 48
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.writers:Ljava/util/List;
            aload 1 /* writer */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 49
            goto 7
        end local 1 // java.util.concurrent.ExecutorService writer
         4: .line 50
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.writers:Ljava/util/List;
            aload 0 /* this */
            dup
            getfield org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.index:I
            dup_x1
            iconst_1
            iadd
            putfield org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.index:I
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.concurrent.ExecutorService
            astore 1 /* writer */
        start local 1 // java.util.concurrent.ExecutorService writer
         5: .line 51
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.index:I
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.writers:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmpne 7
         6: .line 52
            aload 0 /* this */
            iconst_0
            putfield org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.index:I
         7: .line 55
      StackMap locals: java.util.concurrent.ExecutorService
      StackMap stack:
            aload 1 /* writer */
            areturn
        end local 1 // java.util.concurrent.ExecutorService writer
        end local 0 // org.ehcache.impl.internal.store.disk.DiskWriteThreadPool this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/ehcache/impl/internal/store/disk/DiskWriteThreadPool;
            2    4     1  writer  Ljava/util/concurrent/ExecutorService;
            5    8     1  writer  Ljava/util/concurrent/ExecutorService;

  public java.lang.Object newInstance();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.ehcache.impl.internal.store.disk.DiskWriteThreadPool.newInstance:()Ljava/util/concurrent/ExecutorService;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Lorg/terracotta/offheapstore/util/Factory<Ljava/util/concurrent/ExecutorService;>;
SourceFile: "DiskWriteThreadPool.java"