public class reactor.core.publisher.Operators$DeferredSubscription implements org.reactivestreams.Subscription, reactor.core.Scannable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: reactor.core.publisher.Operators$DeferredSubscription
super_class: java.lang.Object
{
static final int STATE_CANCELLED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -2
static final int STATE_SUBSCRIBED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -1
org.reactivestreams.Subscription s;
descriptor: Lorg/reactivestreams/Subscription;
flags: (0x0000)
volatile long requested;
descriptor: J
flags: (0x0040) ACC_VOLATILE
static final java.util.concurrent.atomic.AtomicLongFieldUpdater<reactor.core.publisher.Operators$DeferredSubscription> REQUESTED;
descriptor: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater<Lreactor/core/publisher/Operators$DeferredSubscription;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lreactor/core/publisher/Operators$DeferredSubscription;
ldc "requested"
invokestatic java.util.concurrent.atomic.AtomicLongFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
1: putstatic reactor.core.publisher.Operators$DeferredSubscription.REQUESTED:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
2: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lreactor/core/publisher/Operators$DeferredSubscription;
protected boolean isCancelled();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield reactor.core.publisher.Operators$DeferredSubscription.requested:J
ldc -2
lcmp
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lreactor/core/publisher/Operators$DeferredSubscription;
public void cancel();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: getstatic reactor.core.publisher.Operators$DeferredSubscription.REQUESTED:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
ldc -2
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.getAndSet:(Ljava/lang/Object;J)J
lstore 1
start local 1 1: lload 1
ldc -2
lcmp
ifne 3
2: return
3: StackMap locals: long
StackMap stack:
lload 1
ldc -1
lcmp
ifne 5
4: aload 0
getfield reactor.core.publisher.Operators$DeferredSubscription.s:Lorg/reactivestreams/Subscription;
invokeinterface org.reactivestreams.Subscription.cancel:()V
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lreactor/core/publisher/Operators$DeferredSubscription;
1 6 1 state J
protected void terminate();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic reactor.core.publisher.Operators$DeferredSubscription.REQUESTED:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
ldc -2
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.getAndSet:(Ljava/lang/Object;J)J
pop2
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lreactor/core/publisher/Operators$DeferredSubscription;
public java.lang.Object scanUnsafe(reactor.core.Scannable$Attr);
descriptor: (Lreactor/core/Scannable$Attr;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield reactor.core.publisher.Operators$DeferredSubscription.requested:J
lstore 2
start local 2 1: aload 1
getstatic reactor.core.Scannable$Attr.PARENT:Lreactor/core/Scannable$Attr;
if_acmpne 2
aload 0
getfield reactor.core.publisher.Operators$DeferredSubscription.s:Lorg/reactivestreams/Subscription;
areturn
2: StackMap locals: long
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.REQUESTED_FROM_DOWNSTREAM:Lreactor/core/Scannable$Attr;
if_acmpne 5
lload 2
lconst_0
lcmp
ifge 3
lconst_0
goto 4
StackMap locals:
StackMap stack:
3: lload 2
StackMap locals:
StackMap stack: long
4: invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
areturn
5: StackMap locals:
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.CANCELLED:Lreactor/core/Scannable$Attr;
if_acmpne 6
aload 0
invokevirtual reactor.core.publisher.Operators$DeferredSubscription.isCancelled:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
6: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lreactor/core/publisher/Operators$DeferredSubscription;
0 7 1 key Lreactor/core/Scannable$Attr;
1 7 2 requested J
RuntimeVisibleAnnotations:
reactor.util.annotation.Nullable()
MethodParameters:
Name Flags
key
public void request(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield reactor.core.publisher.Operators$DeferredSubscription.requested:J
lstore 3
start local 3 1: lload 3
ldc -1
lcmp
ifle 9
2: StackMap locals: long
StackMap stack:
lload 3
ldc 9223372036854775807
lcmp
ifne 4
3: return
4: StackMap locals:
StackMap stack:
lload 3
lload 1
invokestatic reactor.core.publisher.Operators.addCap:(JJ)J
lstore 5
start local 5 5: getstatic reactor.core.publisher.Operators$DeferredSubscription.REQUESTED:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
lload 3
lload 5
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.compareAndSet:(Ljava/lang/Object;JJ)Z
ifeq 7
6: return
7: StackMap locals: long
StackMap stack:
aload 0
getfield reactor.core.publisher.Operators$DeferredSubscription.requested:J
lstore 3
8: lload 3
lconst_0
lcmp
ifge 2
end local 5 9: StackMap locals:
StackMap stack:
lload 3
ldc -2
lcmp
ifne 11
10: return
11: StackMap locals:
StackMap stack:
aload 0
getfield reactor.core.publisher.Operators$DeferredSubscription.s:Lorg/reactivestreams/Subscription;
lload 1
invokeinterface org.reactivestreams.Subscription.request:(J)V
12: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lreactor/core/publisher/Operators$DeferredSubscription;
0 13 1 n J
1 13 3 r J
5 9 5 u J
MethodParameters:
Name Flags
n
public final boolean set(org.reactivestreams.Subscription);
descriptor: (Lorg/reactivestreams/Subscription;)Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=6, locals=11, args_size=2
start local 0 start local 1 0: aload 1
ldc "s"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: aload 0
getfield reactor.core.publisher.Operators$DeferredSubscription.requested:J
lstore 2
start local 2 2: aload 0
getfield reactor.core.publisher.Operators$DeferredSubscription.s:Lorg/reactivestreams/Subscription;
astore 4
start local 4 3: lload 2
ldc -2
lcmp
ifne 6
4: aload 1
invokeinterface org.reactivestreams.Subscription.cancel:()V
5: iconst_0
ireturn
6: StackMap locals: long org.reactivestreams.Subscription
StackMap stack:
aload 4
ifnull 10
7: aload 1
invokeinterface org.reactivestreams.Subscription.cancel:()V
8: invokestatic reactor.core.publisher.Operators.reportSubscriptionSet:()V
9: iconst_0
ireturn
10: StackMap locals:
StackMap stack:
lconst_0
lstore 7
start local 7 11: StackMap locals: reactor.core.publisher.Operators$DeferredSubscription org.reactivestreams.Subscription long org.reactivestreams.Subscription top top long
StackMap stack:
aload 0
getfield reactor.core.publisher.Operators$DeferredSubscription.requested:J
lstore 5
start local 5 12: lload 5
ldc -2
lcmp
ifeq 13
lload 5
ldc -1
lcmp
ifne 15
13: StackMap locals: reactor.core.publisher.Operators$DeferredSubscription org.reactivestreams.Subscription long org.reactivestreams.Subscription long long
StackMap stack:
aload 1
invokeinterface org.reactivestreams.Subscription.cancel:()V
14: iconst_0
ireturn
15: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield reactor.core.publisher.Operators$DeferredSubscription.s:Lorg/reactivestreams/Subscription;
16: lload 5
lload 7
lsub
lstore 9
start local 9 17: lload 9
lconst_0
lcmp
ifle 19
18: aload 1
lload 9
invokeinterface org.reactivestreams.Subscription.request:(J)V
19: StackMap locals: long
StackMap stack:
lload 7
lload 9
ladd
lstore 7
20: getstatic reactor.core.publisher.Operators$DeferredSubscription.REQUESTED:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
lload 5
ldc -1
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.compareAndSet:(Ljava/lang/Object;JJ)Z
ifeq 11
21: iconst_1
ireturn
end local 9 end local 7 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lreactor/core/publisher/Operators$DeferredSubscription;
0 22 1 s Lorg/reactivestreams/Subscription;
2 22 2 state J
3 22 4 a Lorg/reactivestreams/Subscription;
12 22 5 r J
11 22 7 accumulated J
17 22 9 toRequest J
MethodParameters:
Name Flags
s
}
SourceFile: "Operators.java"
NestHost: reactor.core.publisher.Operators
InnerClasses:
public Attr = reactor.core.Scannable$Attr of reactor.core.Scannable
public DeferredSubscription = reactor.core.publisher.Operators$DeferredSubscription of reactor.core.publisher.Operators