final class reactor.core.scheduler.ElasticScheduler 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.ElasticScheduler
super_class: java.lang.Object
{
static final java.util.concurrent.atomic.AtomicLong 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.ElasticScheduler$CachedService SHUTDOWN;
descriptor: Lreactor/core/scheduler/ElasticScheduler$CachedService;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final int DEFAULT_TTL_SECONDS;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 60
final java.util.concurrent.ThreadFactory factory;
descriptor: Ljava/util/concurrent/ThreadFactory;
flags: (0x0010) ACC_FINAL
final int ttlSeconds;
descriptor: I
flags: (0x0010) ACC_FINAL
final java.util.Deque<reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry> cache;
descriptor: Ljava/util/Deque;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Deque<Lreactor/core/scheduler/ElasticScheduler$ScheduledExecutorServiceExpiry;>;
final java.util.Queue<reactor.core.scheduler.ElasticScheduler$CachedService> all;
descriptor: Ljava/util/Queue;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Queue<Lreactor/core/scheduler/ElasticScheduler$CachedService;>;
java.util.concurrent.ScheduledExecutorService evictor;
descriptor: Ljava/util/concurrent/ScheduledExecutorService;
flags: (0x0000)
volatile boolean shutdown;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.util.concurrent.atomic.AtomicLong
dup
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
putstatic reactor.core.scheduler.ElasticScheduler.COUNTER:Ljava/util/concurrent/atomic/AtomicLong;
1: 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/ElasticScheduler.lambda$0(Ljava/lang/Runnable;)Ljava/lang/Thread; (6)
(Ljava/lang/Runnable;)Ljava/lang/Thread;
putstatic reactor.core.scheduler.ElasticScheduler.EVICTOR_FACTORY:Ljava/util/concurrent/ThreadFactory;
2: new reactor.core.scheduler.ElasticScheduler$CachedService
dup
aconst_null
invokespecial reactor.core.scheduler.ElasticScheduler$CachedService.<init>:(Lreactor/core/scheduler/ElasticScheduler;)V
putstatic reactor.core.scheduler.ElasticScheduler.SHUTDOWN:Lreactor/core/scheduler/ElasticScheduler$CachedService;
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.util.concurrent.ThreadFactory, int);
descriptor: (Ljava/util/concurrent/ThreadFactory;I)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: iload 2
ifge 3
2: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "ttlSeconds must be positive, was: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
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
3: StackMap locals: reactor.core.scheduler.ElasticScheduler java.util.concurrent.ThreadFactory int
StackMap stack:
aload 0
iload 2
putfield reactor.core.scheduler.ElasticScheduler.ttlSeconds:I
4: aload 0
aload 1
putfield reactor.core.scheduler.ElasticScheduler.factory:Ljava/util/concurrent/ThreadFactory;
5: aload 0
new java.util.concurrent.ConcurrentLinkedDeque
dup
invokespecial java.util.concurrent.ConcurrentLinkedDeque.<init>:()V
putfield reactor.core.scheduler.ElasticScheduler.cache:Ljava/util/Deque;
6: aload 0
new java.util.concurrent.ConcurrentLinkedQueue
dup
invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
putfield reactor.core.scheduler.ElasticScheduler.all:Ljava/util/Queue;
7: aload 0
iconst_1
putfield reactor.core.scheduler.ElasticScheduler.shutdown:Z
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lreactor/core/scheduler/ElasticScheduler;
0 9 1 factory Ljava/util/concurrent/ThreadFactory;
0 9 2 ttlSeconds I
MethodParameters:
Name Flags
factory
ttlSeconds
public java.util.concurrent.ScheduledExecutorService createUndecoratedService();
descriptor: ()Ljava/util/concurrent/ScheduledExecutorService;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new java.util.concurrent.ScheduledThreadPoolExecutor
dup
iconst_1
aload 0
getfield reactor.core.scheduler.ElasticScheduler.factory:Ljava/util/concurrent/ThreadFactory;
invokespecial java.util.concurrent.ScheduledThreadPoolExecutor.<init>:(ILjava/util/concurrent/ThreadFactory;)V
astore 1
start local 1 1: aload 1
iconst_1
invokevirtual java.util.concurrent.ScheduledThreadPoolExecutor.setMaximumPoolSize:(I)V
2: aload 1
iconst_1
invokevirtual java.util.concurrent.ScheduledThreadPoolExecutor.setRemoveOnCancelPolicy:(Z)V
3: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lreactor/core/scheduler/ElasticScheduler;
1 4 1 poolExecutor Ljava/util/concurrent/ScheduledThreadPoolExecutor;
public void start();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=1, args_size=1
start local 0 0: aload 0
getfield reactor.core.scheduler.ElasticScheduler.shutdown:Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
getstatic reactor.core.scheduler.ElasticScheduler.EVICTOR_FACTORY:Ljava/util/concurrent/ThreadFactory;
invokestatic java.util.concurrent.Executors.newScheduledThreadPool:(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
putfield reactor.core.scheduler.ElasticScheduler.evictor:Ljava/util/concurrent/ScheduledExecutorService;
3: aload 0
getfield reactor.core.scheduler.ElasticScheduler.evictor:Ljava/util/concurrent/ScheduledExecutorService;
aload 0
invokedynamic run(Lreactor/core/scheduler/ElasticScheduler;)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/ElasticScheduler.eviction()V (5)
()V
4: aload 0
getfield reactor.core.scheduler.ElasticScheduler.ttlSeconds:I
i2l
5: aload 0
getfield reactor.core.scheduler.ElasticScheduler.ttlSeconds:I
i2l
6: getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
7: invokeinterface java.util.concurrent.ScheduledExecutorService.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
pop
8: aload 0
iconst_0
putfield reactor.core.scheduler.ElasticScheduler.shutdown:Z
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lreactor/core/scheduler/ElasticScheduler;
public boolean isDisposed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield reactor.core.scheduler.ElasticScheduler.shutdown:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lreactor/core/scheduler/ElasticScheduler;
public void dispose();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield reactor.core.scheduler.ElasticScheduler.shutdown:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield reactor.core.scheduler.ElasticScheduler.shutdown:Z
3: aload 0
getfield reactor.core.scheduler.ElasticScheduler.evictor:Ljava/util/concurrent/ScheduledExecutorService;
invokeinterface java.util.concurrent.ScheduledExecutorService.shutdownNow:()Ljava/util/List;
pop
4: aload 0
getfield reactor.core.scheduler.ElasticScheduler.cache:Ljava/util/Deque;
invokeinterface java.util.Deque.clear:()V
5: goto 7
start local 1 6: StackMap locals: reactor.core.scheduler.ElasticScheduler$CachedService
StackMap stack:
aload 1
getfield reactor.core.scheduler.ElasticScheduler$CachedService.exec:Ljava/util/concurrent/ScheduledExecutorService;
invokeinterface java.util.concurrent.ScheduledExecutorService.shutdownNow:()Ljava/util/List;
pop
end local 1 7: StackMap locals:
StackMap stack:
aload 0
getfield reactor.core.scheduler.ElasticScheduler.all:Ljava/util/Queue;
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast reactor.core.scheduler.ElasticScheduler$CachedService
dup
astore 1
start local 1 8: ifnonnull 6
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lreactor/core/scheduler/ElasticScheduler;
6 7 1 cached Lreactor/core/scheduler/ElasticScheduler$CachedService;
8 10 1 cached Lreactor/core/scheduler/ElasticScheduler$CachedService;
reactor.core.scheduler.ElasticScheduler$CachedService pick();
descriptor: ()Lreactor/core/scheduler/ElasticScheduler$CachedService;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield reactor.core.scheduler.ElasticScheduler.shutdown:Z
ifeq 2
1: getstatic reactor.core.scheduler.ElasticScheduler.SHUTDOWN:Lreactor/core/scheduler/ElasticScheduler$CachedService;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield reactor.core.scheduler.ElasticScheduler.cache:Ljava/util/Deque;
invokeinterface java.util.Deque.pollLast:()Ljava/lang/Object;
checkcast reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry
astore 2
start local 2 3: aload 2
ifnull 5
4: aload 2
getfield reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry.cached:Lreactor/core/scheduler/ElasticScheduler$CachedService;
areturn
5: StackMap locals: reactor.core.scheduler.ElasticScheduler top reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry
StackMap stack:
new reactor.core.scheduler.ElasticScheduler$CachedService
dup
aload 0
invokespecial reactor.core.scheduler.ElasticScheduler$CachedService.<init>:(Lreactor/core/scheduler/ElasticScheduler;)V
astore 1
start local 1 6: aload 0
getfield reactor.core.scheduler.ElasticScheduler.all:Ljava/util/Queue;
aload 1
invokeinterface java.util.Queue.offer:(Ljava/lang/Object;)Z
pop
7: aload 0
getfield reactor.core.scheduler.ElasticScheduler.shutdown:Z
ifeq 10
8: aload 0
getfield reactor.core.scheduler.ElasticScheduler.all:Ljava/util/Queue;
aload 1
invokeinterface java.util.Queue.remove:(Ljava/lang/Object;)Z
pop
9: getstatic reactor.core.scheduler.ElasticScheduler.SHUTDOWN:Lreactor/core/scheduler/ElasticScheduler$CachedService;
areturn
10: StackMap locals: reactor.core.scheduler.ElasticScheduler reactor.core.scheduler.ElasticScheduler$CachedService reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lreactor/core/scheduler/ElasticScheduler;
6 11 1 result Lreactor/core/scheduler/ElasticScheduler$CachedService;
3 11 2 e Lreactor/core/scheduler/ElasticScheduler$ScheduledExecutorServiceExpiry;
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 start local 1 0: aload 0
invokevirtual reactor.core.scheduler.ElasticScheduler.pick:()Lreactor/core/scheduler/ElasticScheduler$CachedService;
astore 2
start local 2 1: aload 2
getfield reactor.core.scheduler.ElasticScheduler$CachedService.exec:Ljava/util/concurrent/ScheduledExecutorService;
2: aload 1
3: aload 2
4: lconst_0
5: getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
6: 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 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lreactor/core/scheduler/ElasticScheduler;
0 7 1 task Ljava/lang/Runnable;
1 7 2 cached Lreactor/core/scheduler/ElasticScheduler$CachedService;
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 start local 1 start local 2 start local 4 0: aload 0
invokevirtual reactor.core.scheduler.ElasticScheduler.pick:()Lreactor/core/scheduler/ElasticScheduler$CachedService;
astore 5
start local 5 1: aload 5
getfield reactor.core.scheduler.ElasticScheduler$CachedService.exec:Ljava/util/concurrent/ScheduledExecutorService;
2: aload 1
3: aload 5
4: lload 2
5: aload 4
6: 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 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lreactor/core/scheduler/ElasticScheduler;
0 7 1 task Ljava/lang/Runnable;
0 7 2 delay J
0 7 4 unit Ljava/util/concurrent/TimeUnit;
1 7 5 cached Lreactor/core/scheduler/ElasticScheduler$CachedService;
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=10, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 6 0: aload 0
invokevirtual reactor.core.scheduler.ElasticScheduler.pick:()Lreactor/core/scheduler/ElasticScheduler$CachedService;
astore 7
start local 7 1: iconst_2
anewarray reactor.core.Disposable
dup
iconst_0
aload 7
getfield reactor.core.scheduler.ElasticScheduler$CachedService.exec:Ljava/util/concurrent/ScheduledExecutorService;
2: aload 1
3: lload 2
4: lload 4
5: aload 6
6: invokestatic reactor.core.scheduler.Schedulers.directSchedulePeriodically:(Ljava/util/concurrent/ScheduledExecutorService;Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lreactor/core/Disposable;
aastore
dup
iconst_1
7: aload 7
aastore
8: invokestatic reactor.core.Disposables.composite:([Lreactor/core/Disposable;)Lreactor/core/Disposable$Composite;
areturn
end local 7 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lreactor/core/scheduler/ElasticScheduler;
0 9 1 task Ljava/lang/Runnable;
0 9 2 initialDelay J
0 9 4 period J
0 9 6 unit Ljava/util/concurrent/TimeUnit;
1 9 7 cached Lreactor/core/scheduler/ElasticScheduler$CachedService;
MethodParameters:
Name Flags
task
initialDelay
period
unit
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "elastic"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: bipush 40
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
2: astore 1
start local 1 3: aload 0
getfield reactor.core.scheduler.ElasticScheduler.factory:Ljava/util/concurrent/ThreadFactory;
instanceof reactor.core.scheduler.ReactorThreadFactory
ifeq 5
4: aload 1
bipush 34
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 0
getfield reactor.core.scheduler.ElasticScheduler.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;
bipush 34
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
5: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 1
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
6: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lreactor/core/scheduler/ElasticScheduler;
3 7 1 ts Ljava/lang/StringBuilder;
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 start local 1 0: aload 1
getstatic reactor.core.Scannable$Attr.TERMINATED:Lreactor/core/Scannable$Attr;
if_acmpeq 1
aload 1
getstatic reactor.core.Scannable$Attr.CANCELLED:Lreactor/core/Scannable$Attr;
if_acmpne 2
StackMap locals:
StackMap stack:
1: aload 0
invokevirtual reactor.core.scheduler.ElasticScheduler.isDisposed:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
2: StackMap locals:
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.CAPACITY:Lreactor/core/Scannable$Attr;
if_acmpne 3
ldc 2147483647
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
3: StackMap locals:
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.BUFFERED:Lreactor/core/Scannable$Attr;
if_acmpne 4
aload 0
getfield reactor.core.scheduler.ElasticScheduler.cache:Ljava/util/Deque;
invokeinterface java.util.Deque.size:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
4: StackMap locals:
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.NAME:Lreactor/core/Scannable$Attr;
if_acmpne 5
aload 0
invokevirtual reactor.core.scheduler.ElasticScheduler.toString:()Ljava/lang/String;
areturn
5: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lreactor/core/scheduler/ElasticScheduler;
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=1, args_size=1
start local 0 0: aload 0
getfield reactor.core.scheduler.ElasticScheduler.cache:Ljava/util/Deque;
invokeinterface java.util.Deque.stream:()Ljava/util/stream/Stream;
1: 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;
reactor/core/scheduler/ElasticScheduler.lambda$2(Lreactor/core/scheduler/ElasticScheduler$ScheduledExecutorServiceExpiry;)Lreactor/core/scheduler/ElasticScheduler$CachedService; (6)
(Lreactor/core/scheduler/ElasticScheduler$ScheduledExecutorServiceExpiry;)Lreactor/core/scheduler/ElasticScheduler$CachedService;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lreactor/core/scheduler/ElasticScheduler;
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=1, args_size=1
start local 0 0: new reactor.core.scheduler.ElasticScheduler$ElasticWorker
dup
aload 0
invokevirtual reactor.core.scheduler.ElasticScheduler.pick:()Lreactor/core/scheduler/ElasticScheduler$CachedService;
invokespecial reactor.core.scheduler.ElasticScheduler$ElasticWorker.<init>:(Lreactor/core/scheduler/ElasticScheduler$CachedService;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lreactor/core/scheduler/ElasticScheduler;
void eviction();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=6, args_size=1
start local 0 0: invokestatic java.lang.System.currentTimeMillis:()J
lstore 1
start local 1 1: new java.util.ArrayList
dup
aload 0
getfield reactor.core.scheduler.ElasticScheduler.cache:Ljava/util/Deque;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 3
start local 3 2: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 8
StackMap locals: reactor.core.scheduler.ElasticScheduler long java.util.List top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry
astore 4
start local 4 4: aload 4
getfield reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry.expireMillis:J
lload 1
lcmp
ifge 8
5: aload 0
getfield reactor.core.scheduler.ElasticScheduler.cache:Ljava/util/Deque;
aload 4
invokeinterface java.util.Deque.remove:(Ljava/lang/Object;)Z
ifeq 8
6: aload 4
getfield reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry.cached:Lreactor/core/scheduler/ElasticScheduler$CachedService;
getfield reactor.core.scheduler.ElasticScheduler$CachedService.exec:Ljava/util/concurrent/ScheduledExecutorService;
invokeinterface java.util.concurrent.ScheduledExecutorService.shutdownNow:()Ljava/util/List;
pop
7: aload 0
getfield reactor.core.scheduler.ElasticScheduler.all:Ljava/util/Queue;
aload 4
getfield reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry.cached:Lreactor/core/scheduler/ElasticScheduler$CachedService;
invokeinterface java.util.Queue.remove:(Ljava/lang/Object;)Z
pop
end local 4 8: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
9: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lreactor/core/scheduler/ElasticScheduler;
1 10 1 now J
2 10 3 list Ljava/util/List<Lreactor/core/scheduler/ElasticScheduler$ScheduledExecutorServiceExpiry;>;
4 8 4 e Lreactor/core/scheduler/ElasticScheduler$ScheduledExecutorServiceExpiry;
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 0: new java.lang.Thread
dup
aload 0
new java.lang.StringBuilder
dup
ldc "elastic-evictor-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic reactor.core.scheduler.ElasticScheduler.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
start local 1 1: aload 1
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 r Ljava/lang/Runnable;
1 3 1 t Ljava/lang/Thread;
private static reactor.core.scheduler.ElasticScheduler$CachedService lambda$2(reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry);
descriptor: (Lreactor/core/scheduler/ElasticScheduler$ScheduledExecutorServiceExpiry;)Lreactor/core/scheduler/ElasticScheduler$CachedService;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry.cached:Lreactor/core/scheduler/ElasticScheduler$CachedService;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 cached Lreactor/core/scheduler/ElasticScheduler$ScheduledExecutorServiceExpiry;
}
SourceFile: "ElasticScheduler.java"
NestMembers:
reactor.core.scheduler.ElasticScheduler$CachedService reactor.core.scheduler.ElasticScheduler$ElasticWorker reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry
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
final CachedService = reactor.core.scheduler.ElasticScheduler$CachedService of reactor.core.scheduler.ElasticScheduler
final ElasticWorker = reactor.core.scheduler.ElasticScheduler$ElasticWorker of reactor.core.scheduler.ElasticScheduler
final ScheduledExecutorServiceExpiry = reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry of reactor.core.scheduler.ElasticScheduler
public abstract Worker = reactor.core.scheduler.Scheduler$Worker of reactor.core.scheduler.Scheduler