final class reactor.core.scheduler.ElasticScheduler$CachedService implements reactor.core.Disposable, reactor.core.Scannable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: reactor.core.scheduler.ElasticScheduler$CachedService
super_class: java.lang.Object
{
final reactor.core.scheduler.ElasticScheduler parent;
descriptor: Lreactor/core/scheduler/ElasticScheduler;
flags: (0x0010) ACC_FINAL
final java.util.concurrent.ScheduledExecutorService exec;
descriptor: Ljava/util/concurrent/ScheduledExecutorService;
flags: (0x0010) ACC_FINAL
void <init>(reactor.core.scheduler.ElasticScheduler);
descriptor: (Lreactor/core/scheduler/ElasticScheduler;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 // reactor.core.scheduler.ElasticScheduler$CachedService this
start local 1 // reactor.core.scheduler.ElasticScheduler parent
0: .line 236
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 237
aload 0 /* this */
aload 1 /* parent */
putfield reactor.core.scheduler.ElasticScheduler$CachedService.parent:Lreactor/core/scheduler/ElasticScheduler;
2: .line 238
aload 1 /* parent */
ifnull 7
3: .line 239
aload 0 /* this */
4: .line 240
ldc "elastic"
aload 1 /* parent */
invokestatic reactor.core.scheduler.Schedulers.decorateExecutorService:(Ljava/lang/String;Ljava/util/function/Supplier;)Ljava/util/concurrent/ScheduledExecutorService;
5: .line 239
putfield reactor.core.scheduler.ElasticScheduler$CachedService.exec:Ljava/util/concurrent/ScheduledExecutorService;
6: .line 241
goto 9
7: .line 243
StackMap locals: reactor.core.scheduler.ElasticScheduler$CachedService reactor.core.scheduler.ElasticScheduler
StackMap stack:
aload 0 /* this */
invokestatic java.util.concurrent.Executors.newSingleThreadScheduledExecutor:()Ljava/util/concurrent/ScheduledExecutorService;
putfield reactor.core.scheduler.ElasticScheduler$CachedService.exec:Ljava/util/concurrent/ScheduledExecutorService;
8: .line 244
aload 0 /* this */
getfield reactor.core.scheduler.ElasticScheduler$CachedService.exec:Ljava/util/concurrent/ScheduledExecutorService;
invokeinterface java.util.concurrent.ScheduledExecutorService.shutdownNow:()Ljava/util/List;
pop
9: .line 246
StackMap locals:
StackMap stack:
return
end local 1 // reactor.core.scheduler.ElasticScheduler parent
end local 0 // reactor.core.scheduler.ElasticScheduler$CachedService this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lreactor/core/scheduler/ElasticScheduler$CachedService;
0 10 1 parent Lreactor/core/scheduler/ElasticScheduler;
RuntimeVisibleParameterAnnotations:
0:
reactor.util.annotation.Nullable()
MethodParameters:
Name Flags
parent
public void dispose();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=2, args_size=1
start local 0 // reactor.core.scheduler.ElasticScheduler$CachedService this
0: .line 250
aload 0 /* this */
getfield reactor.core.scheduler.ElasticScheduler$CachedService.exec:Ljava/util/concurrent/ScheduledExecutorService;
ifnull 9
1: .line 251
aload 0 /* this */
getstatic reactor.core.scheduler.ElasticScheduler.SHUTDOWN:Lreactor/core/scheduler/ElasticScheduler$CachedService;
if_acmpeq 9
aload 0 /* this */
getfield reactor.core.scheduler.ElasticScheduler$CachedService.parent:Lreactor/core/scheduler/ElasticScheduler;
getfield reactor.core.scheduler.ElasticScheduler.shutdown:Z
ifne 9
2: .line 253
new reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry
dup
aload 0 /* this */
3: .line 254
invokestatic java.lang.System.currentTimeMillis:()J
aload 0 /* this */
getfield reactor.core.scheduler.ElasticScheduler$CachedService.parent:Lreactor/core/scheduler/ElasticScheduler;
getfield reactor.core.scheduler.ElasticScheduler.ttlSeconds:I
i2l
ldc 1000
lmul
ladd
4: .line 252
invokespecial reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry.<init>:(Lreactor/core/scheduler/ElasticScheduler$CachedService;J)V
astore 1 /* e */
start local 1 // reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry e
5: .line 255
aload 0 /* this */
getfield reactor.core.scheduler.ElasticScheduler$CachedService.parent:Lreactor/core/scheduler/ElasticScheduler;
getfield reactor.core.scheduler.ElasticScheduler.cache:Ljava/util/Queue;
aload 1 /* e */
invokeinterface java.util.Queue.offer:(Ljava/lang/Object;)Z
pop
6: .line 256
aload 0 /* this */
getfield reactor.core.scheduler.ElasticScheduler$CachedService.parent:Lreactor/core/scheduler/ElasticScheduler;
getfield reactor.core.scheduler.ElasticScheduler.shutdown:Z
ifeq 9
7: .line 257
aload 0 /* this */
getfield reactor.core.scheduler.ElasticScheduler$CachedService.parent:Lreactor/core/scheduler/ElasticScheduler;
getfield reactor.core.scheduler.ElasticScheduler.cache:Ljava/util/Queue;
aload 1 /* e */
invokeinterface java.util.Queue.remove:(Ljava/lang/Object;)Z
ifeq 9
8: .line 258
aload 0 /* this */
getfield reactor.core.scheduler.ElasticScheduler$CachedService.exec:Ljava/util/concurrent/ScheduledExecutorService;
invokeinterface java.util.concurrent.ScheduledExecutorService.shutdownNow:()Ljava/util/List;
pop
end local 1 // reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry e
9: .line 263
StackMap locals:
StackMap stack:
return
end local 0 // reactor.core.scheduler.ElasticScheduler$CachedService this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lreactor/core/scheduler/ElasticScheduler$CachedService;
5 9 1 e Lreactor/core/scheduler/ElasticScheduler$ScheduledExecutorServiceExpiry;
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=3, args_size=2
start local 0 // reactor.core.scheduler.ElasticScheduler$CachedService this
start local 1 // reactor.core.Scannable$Attr key
0: .line 267
aload 1 /* key */
getstatic reactor.core.Scannable$Attr.NAME:Lreactor/core/Scannable$Attr;
if_acmpne 1
aload 0 /* this */
getfield reactor.core.scheduler.ElasticScheduler$CachedService.parent:Lreactor/core/scheduler/ElasticScheduler;
aload 1 /* key */
invokevirtual reactor.core.scheduler.ElasticScheduler.scanUnsafe:(Lreactor/core/Scannable$Attr;)Ljava/lang/Object;
areturn
1: .line 268
StackMap locals:
StackMap stack:
aload 1 /* key */
getstatic reactor.core.Scannable$Attr.PARENT:Lreactor/core/Scannable$Attr;
if_acmpne 2
aload 0 /* this */
getfield reactor.core.scheduler.ElasticScheduler$CachedService.parent:Lreactor/core/scheduler/ElasticScheduler;
areturn
2: .line 269
StackMap locals:
StackMap stack:
aload 1 /* key */
getstatic reactor.core.Scannable$Attr.TERMINATED:Lreactor/core/Scannable$Attr;
if_acmpeq 3
aload 1 /* key */
getstatic reactor.core.Scannable$Attr.CANCELLED:Lreactor/core/Scannable$Attr;
if_acmpne 4
StackMap locals:
StackMap stack:
3: aload 0 /* this */
invokevirtual reactor.core.scheduler.ElasticScheduler$CachedService.isDisposed:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
4: .line 270
StackMap locals:
StackMap stack:
aload 1 /* key */
getstatic reactor.core.Scannable$Attr.CAPACITY:Lreactor/core/Scannable$Attr;
if_acmpne 8
5: .line 272
aload 0 /* this */
getfield reactor.core.scheduler.ElasticScheduler$CachedService.exec:Ljava/util/concurrent/ScheduledExecutorService;
aload 1 /* key */
invokestatic reactor.core.scheduler.Schedulers.scanExecutor:(Ljava/util/concurrent/Executor;Lreactor/core/Scannable$Attr;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 2 /* capacity */
start local 2 // java.lang.Integer capacity
6: .line 273
aload 2 /* capacity */
ifnull 7
aload 2 /* capacity */
invokevirtual java.lang.Integer.intValue:()I
iconst_m1
if_icmpne 8
StackMap locals: java.lang.Integer
StackMap stack:
7: iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
end local 2 // java.lang.Integer capacity
8: .line 275
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield reactor.core.scheduler.ElasticScheduler$CachedService.exec:Ljava/util/concurrent/ScheduledExecutorService;
aload 1 /* key */
invokestatic reactor.core.scheduler.Schedulers.scanExecutor:(Ljava/util/concurrent/Executor;Lreactor/core/Scannable$Attr;)Ljava/lang/Object;
areturn
end local 1 // reactor.core.Scannable$Attr key
end local 0 // reactor.core.scheduler.ElasticScheduler$CachedService this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lreactor/core/scheduler/ElasticScheduler$CachedService;
0 9 1 key Lreactor/core/Scannable$Attr;
6 8 2 capacity Ljava/lang/Integer;
MethodParameters:
Name Flags
key
}
SourceFile: "ElasticScheduler.java"
NestHost: reactor.core.scheduler.ElasticScheduler
InnerClasses:
public Attr = reactor.core.Scannable$Attr of reactor.core.Scannable
final CachedService = reactor.core.scheduler.ElasticScheduler$CachedService of reactor.core.scheduler.ElasticScheduler
final ScheduledExecutorServiceExpiry = reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry of reactor.core.scheduler.ElasticScheduler