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 245
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 246
aload 0 /* this */
aload 1 /* parent */
putfield reactor.core.scheduler.ElasticScheduler$CachedService.parent:Lreactor/core/scheduler/ElasticScheduler;
2: .line 247
aload 1 /* parent */
ifnull 5
3: .line 248
aload 0 /* this */
aload 1 /* parent */
aload 1 /* parent */
invokevirtual reactor.core.scheduler.ElasticScheduler.createUndecoratedService:()Ljava/util/concurrent/ScheduledExecutorService;
invokestatic reactor.core.scheduler.Schedulers.decorateExecutorService:(Lreactor/core/scheduler/Scheduler;Ljava/util/concurrent/ScheduledExecutorService;)Ljava/util/concurrent/ScheduledExecutorService;
putfield reactor.core.scheduler.ElasticScheduler$CachedService.exec:Ljava/util/concurrent/ScheduledExecutorService;
4: .line 249
goto 7
5: .line 251
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;
6: .line 252
aload 0 /* this */
getfield reactor.core.scheduler.ElasticScheduler$CachedService.exec:Ljava/util/concurrent/ScheduledExecutorService;
invokeinterface java.util.concurrent.ScheduledExecutorService.shutdownNow:()Ljava/util/List;
pop
7: .line 254
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 8 0 this Lreactor/core/scheduler/ElasticScheduler$CachedService;
0 8 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 258
aload 0 /* this */
getfield reactor.core.scheduler.ElasticScheduler$CachedService.exec:Ljava/util/concurrent/ScheduledExecutorService;
ifnull 9
1: .line 259
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 261
new reactor.core.scheduler.ElasticScheduler$ScheduledExecutorServiceExpiry
dup
aload 0 /* this */
3: .line 262
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 260
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 263
aload 0 /* this */
getfield reactor.core.scheduler.ElasticScheduler$CachedService.parent:Lreactor/core/scheduler/ElasticScheduler;
getfield reactor.core.scheduler.ElasticScheduler.cache:Ljava/util/Deque;
aload 1 /* e */
invokeinterface java.util.Deque.offerLast:(Ljava/lang/Object;)Z
pop
6: .line 264
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 265
aload 0 /* this */
getfield reactor.core.scheduler.ElasticScheduler$CachedService.parent:Lreactor/core/scheduler/ElasticScheduler;
getfield reactor.core.scheduler.ElasticScheduler.cache:Ljava/util/Deque;
aload 1 /* e */
invokeinterface java.util.Deque.remove:(Ljava/lang/Object;)Z
ifeq 9
8: .line 266
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 271
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 275
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 276
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 277
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 278
StackMap locals:
StackMap stack:
aload 1 /* key */
getstatic reactor.core.Scannable$Attr.CAPACITY:Lreactor/core/Scannable$Attr;
if_acmpne 8
5: .line 280
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 281
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 283
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