final class reactor.core.scheduler.BoundedElasticScheduler implements reactor.core.scheduler.Scheduler, reactor.core.Scannable
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: reactor.core.scheduler.BoundedElasticScheduler
  super_class: java.lang.Object
{
  static final int DEFAULT_TTL_SECONDS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 60

  static final java.util.concurrent.atomic.AtomicLong EVICTOR_COUNTER;
    descriptor: Ljava/util/concurrent/atomic/AtomicLong;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.util.concurrent.ThreadFactory EVICTOR_FACTORY;
    descriptor: Ljava/util/concurrent/ThreadFactory;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final reactor.core.scheduler.BoundedElasticScheduler$BoundedServices SHUTDOWN;
    descriptor: Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final reactor.core.scheduler.BoundedElasticScheduler$BoundedState CREATING;
    descriptor: Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  final int maxThreads;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final int maxTaskQueuedPerThread;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final java.time.Clock clock;
    descriptor: Ljava/time/Clock;
    flags: (0x0010) ACC_FINAL

  final java.util.concurrent.ThreadFactory factory;
    descriptor: Ljava/util/concurrent/ThreadFactory;
    flags: (0x0010) ACC_FINAL

  final long ttlMillis;
    descriptor: J
    flags: (0x0010) ACC_FINAL

  volatile reactor.core.scheduler.BoundedElasticScheduler$BoundedServices boundedServices;
    descriptor: Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;
    flags: (0x0040) ACC_VOLATILE

  static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<reactor.core.scheduler.BoundedElasticScheduler, reactor.core.scheduler.BoundedElasticScheduler$BoundedServices> BOUNDED_SERVICES;
    descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lreactor/core/scheduler/BoundedElasticScheduler;Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;>;

  volatile java.util.concurrent.ScheduledExecutorService evictor;
    descriptor: Ljava/util/concurrent/ScheduledExecutorService;
    flags: (0x0040) ACC_VOLATILE

  static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<reactor.core.scheduler.BoundedElasticScheduler, java.util.concurrent.ScheduledExecutorService> EVICTOR;
    descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lreactor/core/scheduler/BoundedElasticScheduler;Ljava/util/concurrent/ScheduledExecutorService;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 70
            new java.util.concurrent.atomic.AtomicLong
            dup
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
            putstatic reactor.core.scheduler.BoundedElasticScheduler.EVICTOR_COUNTER:Ljava/util/concurrent/atomic/AtomicLong;
         1: .line 72
            invokedynamic newThread()Ljava/util/concurrent/ThreadFactory;
              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/Runnable;)Ljava/lang/Thread;
                  reactor/core/scheduler/BoundedElasticScheduler.lambda$0(Ljava/lang/Runnable;)Ljava/lang/Thread; (6)
                  (Ljava/lang/Runnable;)Ljava/lang/Thread;
            putstatic reactor.core.scheduler.BoundedElasticScheduler.EVICTOR_FACTORY:Ljava/util/concurrent/ThreadFactory;
         2: .line 82
            new reactor.core.scheduler.BoundedElasticScheduler$BoundedServices
            dup
            invokespecial reactor.core.scheduler.BoundedElasticScheduler$BoundedServices.<init>:()V
            putstatic reactor.core.scheduler.BoundedElasticScheduler.SHUTDOWN:Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;
         3: .line 83
            getstatic reactor.core.scheduler.BoundedElasticScheduler.SHUTDOWN:Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;
            invokevirtual reactor.core.scheduler.BoundedElasticScheduler$BoundedServices.dispose:()V
         4: .line 84
            invokestatic java.util.concurrent.Executors.newSingleThreadScheduledExecutor:()Ljava/util/concurrent/ScheduledExecutorService;
            astore 0 /* s */
        start local 0 // java.util.concurrent.ScheduledExecutorService s
         5: .line 85
            aload 0 /* s */
            invokeinterface java.util.concurrent.ScheduledExecutorService.shutdownNow:()Ljava/util/List;
            pop
         6: .line 86
            new reactor.core.scheduler.BoundedElasticScheduler$1
            dup
            getstatic reactor.core.scheduler.BoundedElasticScheduler.SHUTDOWN:Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;
            aload 0 /* s */
            invokespecial reactor.core.scheduler.BoundedElasticScheduler$1.<init>:(Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;Ljava/util/concurrent/ScheduledExecutorService;)V
            putstatic reactor.core.scheduler.BoundedElasticScheduler.CREATING:Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;
         7: .line 92
            getstatic reactor.core.scheduler.BoundedElasticScheduler.CREATING:Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;
            iconst_m1
            putfield reactor.core.scheduler.BoundedElasticScheduler$BoundedState.markCount:I
         8: .line 93
            getstatic reactor.core.scheduler.BoundedElasticScheduler.CREATING:Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;
            ldc -1
            putfield reactor.core.scheduler.BoundedElasticScheduler$BoundedState.idleSinceTimestamp:J
        end local 0 // java.util.concurrent.ScheduledExecutorService s
         9: .line 105
            ldc Lreactor/core/scheduler/BoundedElasticScheduler;
            ldc Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;
            ldc "boundedServices"
            invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
        10: .line 104
            putstatic reactor.core.scheduler.BoundedElasticScheduler.BOUNDED_SERVICES:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
        11: .line 109
            ldc Lreactor/core/scheduler/BoundedElasticScheduler;
            ldc Ljava/util/concurrent/ScheduledExecutorService;
            ldc "evictor"
            invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
        12: .line 108
            putstatic reactor.core.scheduler.BoundedElasticScheduler.EVICTOR:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
        13: .line 109
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            5    9     0     s  Ljava/util/concurrent/ScheduledExecutorService;

  void <init>(int, int, java.util.concurrent.ThreadFactory, long, java.time.Clock);
    descriptor: (IILjava/util/concurrent/ThreadFactory;JLjava/time/Clock;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
        start local 1 // int maxThreads
        start local 2 // int maxTaskQueuedPerThread
        start local 3 // java.util.concurrent.ThreadFactory threadFactory
        start local 4 // long ttlMillis
        start local 6 // java.time.Clock clock
         0: .line 115
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 117
            lload 4 /* ttlMillis */
            lconst_0
            lcmp
            ifgt 3
         2: .line 118
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "TTL must be strictly positive, was "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 4 /* ttlMillis */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 120
      StackMap locals: reactor.core.scheduler.BoundedElasticScheduler int int java.util.concurrent.ThreadFactory long java.time.Clock
      StackMap stack:
            iload 1 /* maxThreads */
            ifgt 5
         4: .line 121
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "maxThreads must be strictly positive, was "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* maxThreads */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 123
      StackMap locals:
      StackMap stack:
            iload 2 /* maxTaskQueuedPerThread */
            ifgt 7
         6: .line 124
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "maxTaskQueuedPerThread must be strictly positive, was "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* maxTaskQueuedPerThread */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 126
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* maxThreads */
            putfield reactor.core.scheduler.BoundedElasticScheduler.maxThreads:I
         8: .line 127
            aload 0 /* this */
            iload 2 /* maxTaskQueuedPerThread */
            putfield reactor.core.scheduler.BoundedElasticScheduler.maxTaskQueuedPerThread:I
         9: .line 128
            aload 0 /* this */
            aload 3 /* threadFactory */
            putfield reactor.core.scheduler.BoundedElasticScheduler.factory:Ljava/util/concurrent/ThreadFactory;
        10: .line 129
            aload 0 /* this */
            aload 6 /* clock */
            ldc "A Clock must be provided"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.time.Clock
            putfield reactor.core.scheduler.BoundedElasticScheduler.clock:Ljava/time/Clock;
        11: .line 130
            aload 0 /* this */
            lload 4 /* ttlMillis */
            putfield reactor.core.scheduler.BoundedElasticScheduler.ttlMillis:J
        12: .line 132
            aload 0 /* this */
            getstatic reactor.core.scheduler.BoundedElasticScheduler.SHUTDOWN:Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;
            putfield reactor.core.scheduler.BoundedElasticScheduler.boundedServices:Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;
        13: .line 133
            return
        end local 6 // java.time.Clock clock
        end local 4 // long ttlMillis
        end local 3 // java.util.concurrent.ThreadFactory threadFactory
        end local 2 // int maxTaskQueuedPerThread
        end local 1 // int maxThreads
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   14     0                    this  Lreactor/core/scheduler/BoundedElasticScheduler;
            0   14     1              maxThreads  I
            0   14     2  maxTaskQueuedPerThread  I
            0   14     3           threadFactory  Ljava/util/concurrent/ThreadFactory;
            0   14     4               ttlMillis  J
            0   14     6                   clock  Ljava/time/Clock;
    MethodParameters:
                        Name  Flags
      maxThreads              
      maxTaskQueuedPerThread  
      threadFactory           
      ttlMillis               
      clock                   

  void <init>(int, int, java.util.concurrent.ThreadFactory, int);
    descriptor: (IILjava/util/concurrent/ThreadFactory;I)V
    flags: (0x0000) 
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
        start local 1 // int maxThreads
        start local 2 // int maxTaskQueuedPerThread
        start local 3 // java.util.concurrent.ThreadFactory factory
        start local 4 // int ttlSeconds
         0: .line 146
            aload 0 /* this */
            iload 1 /* maxThreads */
            iload 2 /* maxTaskQueuedPerThread */
            aload 3 /* factory */
            iload 4 /* ttlSeconds */
            i2l
            ldc 1000
            lmul
         1: .line 147
            getstatic reactor.core.scheduler.BoundedElasticScheduler$BoundedServices.ZONE_UTC:Ljava/time/ZoneId;
            invokestatic java.time.Clock.tickSeconds:(Ljava/time/ZoneId;)Ljava/time/Clock;
            invokespecial reactor.core.scheduler.BoundedElasticScheduler.<init>:(IILjava/util/concurrent/ThreadFactory;JLjava/time/Clock;)V
         2: .line 148
            return
        end local 4 // int ttlSeconds
        end local 3 // java.util.concurrent.ThreadFactory factory
        end local 2 // int maxTaskQueuedPerThread
        end local 1 // int maxThreads
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    3     0                    this  Lreactor/core/scheduler/BoundedElasticScheduler;
            0    3     1              maxThreads  I
            0    3     2  maxTaskQueuedPerThread  I
            0    3     3                 factory  Ljava/util/concurrent/ThreadFactory;
            0    3     4              ttlSeconds  I
    MethodParameters:
                        Name  Flags
      maxThreads              
      maxTaskQueuedPerThread  
      factory                 
      ttlSeconds              

  reactor.core.scheduler.BoundedElasticScheduler$BoundedScheduledExecutorService createBoundedExecutorService();
    descriptor: ()Lreactor/core/scheduler/BoundedElasticScheduler$BoundedScheduledExecutorService;
    flags: (0x0000) 
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
         0: .line 155
            new reactor.core.scheduler.BoundedElasticScheduler$BoundedScheduledExecutorService
            dup
            aload 0 /* this */
            getfield reactor.core.scheduler.BoundedElasticScheduler.maxTaskQueuedPerThread:I
            aload 0 /* this */
            getfield reactor.core.scheduler.BoundedElasticScheduler.factory:Ljava/util/concurrent/ThreadFactory;
            invokespecial reactor.core.scheduler.BoundedElasticScheduler$BoundedScheduledExecutorService.<init>:(ILjava/util/concurrent/ThreadFactory;)V
            areturn
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lreactor/core/scheduler/BoundedElasticScheduler;

  public boolean isDisposed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
         0: .line 160
            getstatic reactor.core.scheduler.BoundedElasticScheduler.BOUNDED_SERVICES:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
            getstatic reactor.core.scheduler.BoundedElasticScheduler.SHUTDOWN:Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lreactor/core/scheduler/BoundedElasticScheduler;

  public void start();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=1
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
         0: .line 166
      StackMap locals:
      StackMap stack:
            getstatic reactor.core.scheduler.BoundedElasticScheduler.BOUNDED_SERVICES:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast reactor.core.scheduler.BoundedElasticScheduler$BoundedServices
            astore 1 /* services */
        start local 1 // reactor.core.scheduler.BoundedElasticScheduler$BoundedServices services
         1: .line 167
            aload 1 /* services */
            getstatic reactor.core.scheduler.BoundedElasticScheduler.SHUTDOWN:Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;
            if_acmpeq 3
         2: .line 168
            return
         3: .line 170
      StackMap locals: reactor.core.scheduler.BoundedElasticScheduler$BoundedServices
      StackMap stack:
            new reactor.core.scheduler.BoundedElasticScheduler$BoundedServices
            dup
            aload 0 /* this */
            invokespecial reactor.core.scheduler.BoundedElasticScheduler$BoundedServices.<init>:(Lreactor/core/scheduler/BoundedElasticScheduler;)V
            astore 2 /* newServices */
        start local 2 // reactor.core.scheduler.BoundedElasticScheduler$BoundedServices newServices
         4: .line 171
            getstatic reactor.core.scheduler.BoundedElasticScheduler.BOUNDED_SERVICES:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            aload 1 /* services */
            aload 2 /* newServices */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 0
         5: .line 172
            iconst_1
            getstatic reactor.core.scheduler.BoundedElasticScheduler.EVICTOR_FACTORY:Ljava/util/concurrent/ThreadFactory;
            invokestatic java.util.concurrent.Executors.newScheduledThreadPool:(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
            astore 3 /* e */
        start local 3 // java.util.concurrent.ScheduledExecutorService e
         6: .line 173
            getstatic reactor.core.scheduler.BoundedElasticScheduler.EVICTOR:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            aconst_null
            aload 3 /* e */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 12
         7: .line 175
            aload 3 /* e */
            aload 2 /* newServices */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic run(Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;)Ljava/lang/Runnable;
              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:
                  ()V
                  reactor/core/scheduler/BoundedElasticScheduler$BoundedServices.eviction()V (5)
                  ()V
            aload 0 /* this */
            getfield reactor.core.scheduler.BoundedElasticScheduler.ttlMillis:J
            aload 0 /* this */
            getfield reactor.core.scheduler.BoundedElasticScheduler.ttlMillis:J
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.ScheduledExecutorService.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
            pop
         8: .line 176
            goto 13
         9: .line 177
      StackMap locals: reactor.core.scheduler.BoundedElasticScheduler reactor.core.scheduler.BoundedElasticScheduler$BoundedServices reactor.core.scheduler.BoundedElasticScheduler$BoundedServices java.util.concurrent.ScheduledExecutorService
      StackMap stack: java.util.concurrent.RejectedExecutionException
            astore 4 /* ree */
        start local 4 // java.util.concurrent.RejectedExecutionException ree
        10: .line 179
            aload 0 /* this */
            invokevirtual reactor.core.scheduler.BoundedElasticScheduler.isDisposed:()Z
            ifne 13
        11: .line 180
            aload 4 /* ree */
            athrow
        end local 4 // java.util.concurrent.RejectedExecutionException ree
        12: .line 185
      StackMap locals:
      StackMap stack:
            aload 3 /* e */
            invokeinterface java.util.concurrent.ScheduledExecutorService.shutdownNow:()Ljava/util/List;
            pop
        13: .line 187
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.concurrent.ScheduledExecutorService e
        end local 2 // reactor.core.scheduler.BoundedElasticScheduler$BoundedServices newServices
        end local 1 // reactor.core.scheduler.BoundedElasticScheduler$BoundedServices services
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lreactor/core/scheduler/BoundedElasticScheduler;
            1   14     1     services  Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;
            4   14     2  newServices  Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;
            6   14     3            e  Ljava/util/concurrent/ScheduledExecutorService;
           10   12     4          ree  Ljava/util/concurrent/RejectedExecutionException;
      Exception table:
        from    to  target  type
           7     8       9  Class java.util.concurrent.RejectedExecutionException

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
         0: .line 194
            getstatic reactor.core.scheduler.BoundedElasticScheduler.BOUNDED_SERVICES:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast reactor.core.scheduler.BoundedElasticScheduler$BoundedServices
            astore 1 /* services */
        start local 1 // reactor.core.scheduler.BoundedElasticScheduler$BoundedServices services
         1: .line 195
            aload 1 /* services */
            getstatic reactor.core.scheduler.BoundedElasticScheduler.SHUTDOWN:Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;
            if_acmpeq 6
            getstatic reactor.core.scheduler.BoundedElasticScheduler.BOUNDED_SERVICES:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            aload 1 /* services */
            getstatic reactor.core.scheduler.BoundedElasticScheduler.SHUTDOWN:Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 6
         2: .line 196
            getstatic reactor.core.scheduler.BoundedElasticScheduler.EVICTOR:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            aconst_null
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.getAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.concurrent.ScheduledExecutorService
            astore 2 /* e */
        start local 2 // java.util.concurrent.ScheduledExecutorService e
         3: .line 197
            aload 2 /* e */
            ifnull 5
         4: .line 198
            aload 2 /* e */
            invokeinterface java.util.concurrent.ScheduledExecutorService.shutdownNow:()Ljava/util/List;
            pop
         5: .line 200
      StackMap locals: reactor.core.scheduler.BoundedElasticScheduler$BoundedServices java.util.concurrent.ScheduledExecutorService
      StackMap stack:
            aload 1 /* services */
            invokevirtual reactor.core.scheduler.BoundedElasticScheduler$BoundedServices.dispose:()V
        end local 2 // java.util.concurrent.ScheduledExecutorService e
         6: .line 202
      StackMap locals:
      StackMap stack:
            return
        end local 1 // reactor.core.scheduler.BoundedElasticScheduler$BoundedServices services
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lreactor/core/scheduler/BoundedElasticScheduler;
            1    7     1  services  Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;
            3    6     2         e  Ljava/util/concurrent/ScheduledExecutorService;

  public reactor.core.Disposable schedule(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Lreactor/core/Disposable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
        start local 1 // java.lang.Runnable task
         0: .line 207
            getstatic reactor.core.scheduler.BoundedElasticScheduler.BOUNDED_SERVICES:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast reactor.core.scheduler.BoundedElasticScheduler$BoundedServices
            invokevirtual reactor.core.scheduler.BoundedElasticScheduler$BoundedServices.pick:()Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;
            astore 2 /* picked */
        start local 2 // reactor.core.scheduler.BoundedElasticScheduler$BoundedState picked
         1: .line 208
            aload 2 /* picked */
            getfield reactor.core.scheduler.BoundedElasticScheduler$BoundedState.executor:Ljava/util/concurrent/ScheduledExecutorService;
            aload 1 /* task */
            aload 2 /* picked */
            lconst_0
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic reactor.core.scheduler.Schedulers.directSchedule:(Ljava/util/concurrent/ScheduledExecutorService;Ljava/lang/Runnable;Lreactor/core/Disposable;JLjava/util/concurrent/TimeUnit;)Lreactor/core/Disposable;
            areturn
        end local 2 // reactor.core.scheduler.BoundedElasticScheduler$BoundedState picked
        end local 1 // java.lang.Runnable task
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lreactor/core/scheduler/BoundedElasticScheduler;
            0    2     1    task  Ljava/lang/Runnable;
            1    2     2  picked  Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;
    MethodParameters:
      Name  Flags
      task  

  public reactor.core.Disposable schedule(java.lang.Runnable, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lreactor/core/Disposable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
        start local 1 // java.lang.Runnable task
        start local 2 // long delay
        start local 4 // java.util.concurrent.TimeUnit unit
         0: .line 214
            getstatic reactor.core.scheduler.BoundedElasticScheduler.BOUNDED_SERVICES:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast reactor.core.scheduler.BoundedElasticScheduler$BoundedServices
            invokevirtual reactor.core.scheduler.BoundedElasticScheduler$BoundedServices.pick:()Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;
            astore 5 /* picked */
        start local 5 // reactor.core.scheduler.BoundedElasticScheduler$BoundedState picked
         1: .line 215
            aload 5 /* picked */
            getfield reactor.core.scheduler.BoundedElasticScheduler$BoundedState.executor:Ljava/util/concurrent/ScheduledExecutorService;
            aload 1 /* task */
            aload 5 /* picked */
            lload 2 /* delay */
            aload 4 /* unit */
            invokestatic reactor.core.scheduler.Schedulers.directSchedule:(Ljava/util/concurrent/ScheduledExecutorService;Ljava/lang/Runnable;Lreactor/core/Disposable;JLjava/util/concurrent/TimeUnit;)Lreactor/core/Disposable;
            areturn
        end local 5 // reactor.core.scheduler.BoundedElasticScheduler$BoundedState picked
        end local 4 // java.util.concurrent.TimeUnit unit
        end local 2 // long delay
        end local 1 // java.lang.Runnable task
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lreactor/core/scheduler/BoundedElasticScheduler;
            0    2     1    task  Ljava/lang/Runnable;
            0    2     2   delay  J
            0    2     4    unit  Ljava/util/concurrent/TimeUnit;
            1    2     5  picked  Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;
    MethodParameters:
       Name  Flags
      task   
      delay  
      unit   

  public reactor.core.Disposable schedulePeriodically(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lreactor/core/Disposable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
        start local 1 // java.lang.Runnable task
        start local 2 // long initialDelay
        start local 4 // long period
        start local 6 // java.util.concurrent.TimeUnit unit
         0: .line 223
            getstatic reactor.core.scheduler.BoundedElasticScheduler.BOUNDED_SERVICES:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast reactor.core.scheduler.BoundedElasticScheduler$BoundedServices
            invokevirtual reactor.core.scheduler.BoundedElasticScheduler$BoundedServices.pick:()Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;
            astore 7 /* picked */
        start local 7 // reactor.core.scheduler.BoundedElasticScheduler$BoundedState picked
         1: .line 224
            aload 7 /* picked */
            getfield reactor.core.scheduler.BoundedElasticScheduler$BoundedState.executor:Ljava/util/concurrent/ScheduledExecutorService;
         2: .line 225
            aload 1 /* task */
         3: .line 226
            lload 2 /* initialDelay */
         4: .line 227
            lload 4 /* period */
         5: .line 228
            aload 6 /* unit */
         6: .line 224
            invokestatic reactor.core.scheduler.Schedulers.directSchedulePeriodically:(Ljava/util/concurrent/ScheduledExecutorService;Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lreactor/core/Disposable;
            astore 8 /* scheduledTask */
        start local 8 // reactor.core.Disposable scheduledTask
         7: .line 231
            iconst_2
            anewarray reactor.core.Disposable
            dup
            iconst_0
            aload 8 /* scheduledTask */
            aastore
            dup
            iconst_1
            aload 7 /* picked */
            aastore
            invokestatic reactor.core.Disposables.composite:([Lreactor/core/Disposable;)Lreactor/core/Disposable$Composite;
            areturn
        end local 8 // reactor.core.Disposable scheduledTask
        end local 7 // reactor.core.scheduler.BoundedElasticScheduler$BoundedState picked
        end local 6 // java.util.concurrent.TimeUnit unit
        end local 4 // long period
        end local 2 // long initialDelay
        end local 1 // java.lang.Runnable task
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lreactor/core/scheduler/BoundedElasticScheduler;
            0    8     1           task  Ljava/lang/Runnable;
            0    8     2   initialDelay  J
            0    8     4         period  J
            0    8     6           unit  Ljava/util/concurrent/TimeUnit;
            1    8     7         picked  Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;
            7    8     8  scheduledTask  Lreactor/core/Disposable;
    MethodParameters:
              Name  Flags
      task          
      initialDelay  
      period        
      unit          

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
         0: .line 236
            new java.lang.StringBuilder
            dup
            ldc "boundedElastic"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 237
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         2: .line 236
            astore 1 /* ts */
        start local 1 // java.lang.StringBuilder ts
         3: .line 238
            aload 0 /* this */
            getfield reactor.core.scheduler.BoundedElasticScheduler.factory:Ljava/util/concurrent/ThreadFactory;
            instanceof reactor.core.scheduler.ReactorThreadFactory
            ifeq 5
         4: .line 239
            aload 1 /* ts */
            bipush 34
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield reactor.core.scheduler.BoundedElasticScheduler.factory:Ljava/util/concurrent/ThreadFactory;
            checkcast reactor.core.scheduler.ReactorThreadFactory
            invokevirtual reactor.core.scheduler.ReactorThreadFactory.get:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 241
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* ts */
            ldc "maxThreads="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield reactor.core.scheduler.BoundedElasticScheduler.maxThreads:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         6: .line 242
            ldc ",maxTaskQueuedPerThread="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield reactor.core.scheduler.BoundedElasticScheduler.maxTaskQueuedPerThread:I
            ldc 2147483647
            if_icmpne 7
            ldc "unbounded"
            goto 8
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         7: aload 0 /* this */
            getfield reactor.core.scheduler.BoundedElasticScheduler.maxTaskQueuedPerThread:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
      StackMap locals: reactor.core.scheduler.BoundedElasticScheduler java.lang.StringBuilder
      StackMap stack: java.lang.StringBuilder java.io.Serializable
         8: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         9: .line 243
            ldc ",ttl="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 244
            aload 0 /* this */
            getfield reactor.core.scheduler.BoundedElasticScheduler.ttlMillis:J
            ldc 1000
            lcmp
            ifge 13
        11: .line 245
            aload 1 /* ts */
            aload 0 /* this */
            getfield reactor.core.scheduler.BoundedElasticScheduler.ttlMillis:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 246
            goto 14
        13: .line 248
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            aload 0 /* this */
            getfield reactor.core.scheduler.BoundedElasticScheduler.ttlMillis:J
            ldc 1000
            ldiv
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "s)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 250
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder ts
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lreactor/core/scheduler/BoundedElasticScheduler;
            3   15     1    ts  Ljava/lang/StringBuilder;

  int estimateSize();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
         0: .line 257
            getstatic reactor.core.scheduler.BoundedElasticScheduler.BOUNDED_SERVICES:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast reactor.core.scheduler.BoundedElasticScheduler$BoundedServices
            invokevirtual reactor.core.scheduler.BoundedElasticScheduler$BoundedServices.get:()I
            ireturn
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lreactor/core/scheduler/BoundedElasticScheduler;

  int estimateBusy();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
         0: .line 264
            getstatic reactor.core.scheduler.BoundedElasticScheduler.BOUNDED_SERVICES:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast reactor.core.scheduler.BoundedElasticScheduler$BoundedServices
            getfield reactor.core.scheduler.BoundedElasticScheduler$BoundedServices.busyQueue:Ljava/util/concurrent/PriorityBlockingQueue;
            invokevirtual java.util.concurrent.PriorityBlockingQueue.size:()I
            ireturn
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lreactor/core/scheduler/BoundedElasticScheduler;

  int estimateIdle();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
         0: .line 271
            getstatic reactor.core.scheduler.BoundedElasticScheduler.BOUNDED_SERVICES:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast reactor.core.scheduler.BoundedElasticScheduler$BoundedServices
            getfield reactor.core.scheduler.BoundedElasticScheduler$BoundedServices.idleQueue:Ljava/util/Deque;
            invokeinterface java.util.Deque.size:()I
            ireturn
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lreactor/core/scheduler/BoundedElasticScheduler;

  int estimateRemainingTaskCapacity();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
         0: .line 280
            getstatic reactor.core.scheduler.BoundedElasticScheduler.BOUNDED_SERVICES:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast reactor.core.scheduler.BoundedElasticScheduler$BoundedServices
            getfield reactor.core.scheduler.BoundedElasticScheduler$BoundedServices.busyQueue:Ljava/util/concurrent/PriorityBlockingQueue;
            astore 1 /* busyQueue */
        start local 1 // java.util.Queue busyQueue
         1: .line 281
            aload 0 /* this */
            getfield reactor.core.scheduler.BoundedElasticScheduler.maxTaskQueuedPerThread:I
            aload 0 /* this */
            getfield reactor.core.scheduler.BoundedElasticScheduler.maxThreads:I
            imul
            istore 2 /* totalTaskCapacity */
        start local 2 // int totalTaskCapacity
         2: .line 282
            aload 1 /* busyQueue */
            invokeinterface java.util.Queue.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: reactor.core.scheduler.BoundedElasticScheduler java.util.Queue int top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast reactor.core.scheduler.BoundedElasticScheduler$BoundedState
            astore 3 /* state */
        start local 3 // reactor.core.scheduler.BoundedElasticScheduler$BoundedState state
         4: .line 283
            aload 3 /* state */
            invokevirtual reactor.core.scheduler.BoundedElasticScheduler$BoundedState.estimateQueueSize:()I
            istore 5 /* stateQueueSize */
        start local 5 // int stateQueueSize
         5: .line 284
            iload 5 /* stateQueueSize */
            iflt 8
         6: .line 285
            iload 2 /* totalTaskCapacity */
            iload 5 /* stateQueueSize */
            isub
            istore 2 /* totalTaskCapacity */
         7: .line 286
            goto 9
         8: .line 288
      StackMap locals: reactor.core.scheduler.BoundedElasticScheduler java.util.Queue int reactor.core.scheduler.BoundedElasticScheduler$BoundedState java.util.Iterator int
      StackMap stack:
            iconst_m1
            ireturn
        end local 5 // int stateQueueSize
        end local 3 // reactor.core.scheduler.BoundedElasticScheduler$BoundedState state
         9: .line 282
      StackMap locals: reactor.core.scheduler.BoundedElasticScheduler java.util.Queue int top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        10: .line 291
            iload 2 /* totalTaskCapacity */
            ireturn
        end local 2 // int totalTaskCapacity
        end local 1 // java.util.Queue busyQueue
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   11     0               this  Lreactor/core/scheduler/BoundedElasticScheduler;
            1   11     1          busyQueue  Ljava/util/Queue<Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;>;
            2   11     2  totalTaskCapacity  I
            4    9     3              state  Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;
            5    9     5     stateQueueSize  I

  public java.lang.Object scanUnsafe(reactor.core.Scannable$Attr);
    descriptor: (Lreactor/core/Scannable$Attr;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
        start local 1 // reactor.core.Scannable$Attr key
         0: .line 296
            aload 1 /* key */
            getstatic reactor.core.Scannable$Attr.TERMINATED:Lreactor/core/Scannable$Attr;
            if_acmpeq 1
            aload 1 /* key */
            getstatic reactor.core.Scannable$Attr.CANCELLED:Lreactor/core/Scannable$Attr;
            if_acmpne 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            invokevirtual reactor.core.scheduler.BoundedElasticScheduler.isDisposed:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
         2: .line 297
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            getstatic reactor.core.Scannable$Attr.BUFFERED:Lreactor/core/Scannable$Attr;
            if_acmpne 3
            aload 0 /* this */
            invokevirtual reactor.core.scheduler.BoundedElasticScheduler.estimateSize:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
         3: .line 298
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            getstatic reactor.core.Scannable$Attr.CAPACITY:Lreactor/core/Scannable$Attr;
            if_acmpne 4
            aload 0 /* this */
            getfield reactor.core.scheduler.BoundedElasticScheduler.maxThreads:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
         4: .line 299
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            getstatic reactor.core.Scannable$Attr.NAME:Lreactor/core/Scannable$Attr;
            if_acmpne 5
            aload 0 /* this */
            invokevirtual reactor.core.scheduler.BoundedElasticScheduler.toString:()Ljava/lang/String;
            areturn
         5: .line 301
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // reactor.core.Scannable$Attr key
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lreactor/core/scheduler/BoundedElasticScheduler;
            0    6     1   key  Lreactor/core/Scannable$Attr;
    MethodParameters:
      Name  Flags
      key   

  public java.util.stream.Stream<? extends reactor.core.Scannable> inners();
    descriptor: ()Ljava/util/stream/Stream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
         0: .line 306
            getstatic reactor.core.scheduler.BoundedElasticScheduler.BOUNDED_SERVICES:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast reactor.core.scheduler.BoundedElasticScheduler$BoundedServices
            astore 1 /* services */
        start local 1 // reactor.core.scheduler.BoundedElasticScheduler$BoundedServices services
         1: .line 307
            aload 1 /* services */
            getfield reactor.core.scheduler.BoundedElasticScheduler$BoundedServices.busyQueue:Ljava/util/concurrent/PriorityBlockingQueue;
            invokevirtual java.util.concurrent.PriorityBlockingQueue.stream:()Ljava/util/stream/Stream;
            aload 1 /* services */
            getfield reactor.core.scheduler.BoundedElasticScheduler$BoundedServices.idleQueue:Ljava/util/Deque;
            invokeinterface java.util.Deque.stream:()Ljava/util/stream/Stream;
            invokestatic java.util.stream.Stream.concat:(Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/util/stream/Stream;
         2: .line 308
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  reactor/core/scheduler/BoundedElasticScheduler.lambda$2(Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;)Z (6)
                  (Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         3: .line 307
            areturn
        end local 1 // reactor.core.scheduler.BoundedElasticScheduler$BoundedServices services
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lreactor/core/scheduler/BoundedElasticScheduler;
            1    4     1  services  Lreactor/core/scheduler/BoundedElasticScheduler$BoundedServices;
    Signature: ()Ljava/util/stream/Stream<+Lreactor/core/Scannable;>;

  public reactor.core.scheduler.Scheduler$Worker createWorker();
    descriptor: ()Lreactor/core/scheduler/Scheduler$Worker;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler this
         0: .line 313
            getstatic reactor.core.scheduler.BoundedElasticScheduler.BOUNDED_SERVICES:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast reactor.core.scheduler.BoundedElasticScheduler$BoundedServices
         1: .line 314
            invokevirtual reactor.core.scheduler.BoundedElasticScheduler$BoundedServices.pick:()Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;
         2: .line 313
            astore 1 /* picked */
        start local 1 // reactor.core.scheduler.BoundedElasticScheduler$BoundedState picked
         3: .line 315
            new reactor.core.scheduler.ExecutorServiceWorker
            dup
            aload 1 /* picked */
            getfield reactor.core.scheduler.BoundedElasticScheduler$BoundedState.executor:Ljava/util/concurrent/ScheduledExecutorService;
            invokespecial reactor.core.scheduler.ExecutorServiceWorker.<init>:(Ljava/util/concurrent/ScheduledExecutorService;)V
            astore 2 /* worker */
        start local 2 // reactor.core.scheduler.ExecutorServiceWorker worker
         4: .line 316
            aload 2 /* worker */
            getfield reactor.core.scheduler.ExecutorServiceWorker.disposables:Lreactor/core/Disposable$Composite;
            aload 1 /* picked */
            invokeinterface reactor.core.Disposable$Composite.add:(Lreactor/core/Disposable;)Z
            pop
         5: .line 317
            aload 2 /* worker */
            areturn
        end local 2 // reactor.core.scheduler.ExecutorServiceWorker worker
        end local 1 // reactor.core.scheduler.BoundedElasticScheduler$BoundedState picked
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lreactor/core/scheduler/BoundedElasticScheduler;
            3    6     1  picked  Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;
            4    6     2  worker  Lreactor/core/scheduler/ExecutorServiceWorker;

  private static java.lang.Thread lambda$0(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Ljava/lang/Thread;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.Runnable r
         0: .line 73
            new java.lang.Thread
            dup
            aload 0 /* r */
            new java.lang.StringBuilder
            dup
            ldc "boundedElastic-evictor-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic reactor.core.scheduler.BoundedElasticScheduler.EVICTOR_COUNTER:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
            astore 1 /* t */
        start local 1 // java.lang.Thread t
         1: .line 74
            aload 1 /* t */
            iconst_1
            invokevirtual java.lang.Thread.setDaemon:(Z)V
         2: .line 75
            aload 1 /* t */
            areturn
        end local 1 // java.lang.Thread t
        end local 0 // java.lang.Runnable r
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     r  Ljava/lang/Runnable;
            1    3     1     t  Ljava/lang/Thread;

  private static boolean lambda$2(reactor.core.scheduler.BoundedElasticScheduler$BoundedState);
    descriptor: (Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // reactor.core.scheduler.BoundedElasticScheduler$BoundedState obj
         0: .line 308
            aload 0 /* obj */
            ifnull 1
            aload 0 /* obj */
            getstatic reactor.core.scheduler.BoundedElasticScheduler.CREATING:Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;
            if_acmpeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // reactor.core.scheduler.BoundedElasticScheduler$BoundedState obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   obj  Lreactor/core/scheduler/BoundedElasticScheduler$BoundedState;
}
SourceFile: "BoundedElasticScheduler.java"
NestMembers:
  reactor.core.scheduler.BoundedElasticScheduler$1  reactor.core.scheduler.BoundedElasticScheduler$BoundedScheduledExecutorService  reactor.core.scheduler.BoundedElasticScheduler$BoundedServices  reactor.core.scheduler.BoundedElasticScheduler$BoundedState
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Composite = reactor.core.Disposable$Composite of reactor.core.Disposable
  public Attr = reactor.core.Scannable$Attr of reactor.core.Scannable
  reactor.core.scheduler.BoundedElasticScheduler$1
  final BoundedScheduledExecutorService = reactor.core.scheduler.BoundedElasticScheduler$BoundedScheduledExecutorService of reactor.core.scheduler.BoundedElasticScheduler
  final BoundedServices = reactor.core.scheduler.BoundedElasticScheduler$BoundedServices of reactor.core.scheduler.BoundedElasticScheduler
  BoundedState = reactor.core.scheduler.BoundedElasticScheduler$BoundedState of reactor.core.scheduler.BoundedElasticScheduler
  public abstract Worker = reactor.core.scheduler.Scheduler$Worker of reactor.core.scheduler.Scheduler