final class reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain<T> implements reactor.core.publisher.InnerProducer<T>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain
super_class: java.lang.Object
{
final reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner<T>[] subscribers;
descriptor: [Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialInner;
flags: (0x0010) ACC_FINAL
Signature: [Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialInner<TT;>;
final java.util.function.Supplier<java.util.Queue<T>> queueSupplier;
descriptor: Ljava/util/function/Supplier;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/function/Supplier<Ljava/util/Queue<TT;>;>;
final reactor.core.CoreSubscriber<? super T> actual;
descriptor: Lreactor/core/CoreSubscriber;
flags: (0x0010) ACC_FINAL
Signature: Lreactor/core/CoreSubscriber<-TT;>;
static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain, java.lang.Throwable> ERROR;
descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain;Ljava/lang/Throwable;>;
volatile int wip;
descriptor: I
flags: (0x0040) ACC_VOLATILE
static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain> WIP;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain;>;
volatile long requested;
descriptor: J
flags: (0x0040) ACC_VOLATILE
static final java.util.concurrent.atomic.AtomicLongFieldUpdater<reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain> REQUESTED;
descriptor: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater<Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain;>;
volatile boolean cancelled;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
volatile int done;
descriptor: I
flags: (0x0040) ACC_VOLATILE
static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain> DONE;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain;>;
volatile java.lang.Throwable error;
descriptor: Ljava/lang/Throwable;
flags: (0x0040) ACC_VOLATILE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain;
ldc Ljava/lang/Throwable;
ldc "error"
invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
1: putstatic reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.ERROR:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
2: ldc Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain;
ldc "wip"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
3: putstatic reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.WIP:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
4: ldc Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain;
ldc "requested"
invokestatic java.util.concurrent.atomic.AtomicLongFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
5: putstatic reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.REQUESTED:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
6: ldc Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain;
ldc "done"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
7: putstatic reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.DONE:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
8: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(reactor.core.CoreSubscriber<? super T>, int, int, java.util.function.Supplier<java.util.Queue<T>>);
descriptor: (Lreactor/core/CoreSubscriber;IILjava/util/function/Supplier;)V
flags: (0x0000)
Code:
stack=6, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.actual:Lreactor/core/CoreSubscriber;
2: aload 0
aload 4
putfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.queueSupplier:Ljava/util/function/Supplier;
3: iload 2
anewarray reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner
astore 5
start local 5 4: iconst_0
istore 6
start local 6 5: goto 8
6: StackMap locals: reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain reactor.core.CoreSubscriber int int java.util.function.Supplier reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner[] int
StackMap stack:
aload 5
iload 6
new reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner
dup
aload 0
iload 3
invokespecial reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner.<init>:(Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain;I)V
aastore
7: iinc 6 1
StackMap locals:
StackMap stack:
8: iload 6
iload 2
if_icmplt 6
end local 6 9: aload 0
aload 5
putfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.subscribers:[Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialInner;
10: getstatic reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.DONE:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 2
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.lazySet:(Ljava/lang/Object;I)V
11: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain<TT;>;
0 12 1 actual Lreactor/core/CoreSubscriber<-TT;>;
0 12 2 n I
0 12 3 prefetch I
0 12 4 queueSupplier Ljava/util/function/Supplier<Ljava/util/Queue<TT;>;>;
4 12 5 a [Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialInner;
5 9 6 i I
Signature: (Lreactor/core/CoreSubscriber<-TT;>;IILjava/util/function/Supplier<Ljava/util/Queue<TT;>;>;)V
MethodParameters:
Name Flags
actual
n
prefetch
queueSupplier
public final reactor.core.CoreSubscriber<? super T> actual();
descriptor: ()Lreactor/core/CoreSubscriber;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.actual:Lreactor/core/CoreSubscriber;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain<TT;>;
Signature: ()Lreactor/core/CoreSubscriber<-TT;>;
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.CANCELLED:Lreactor/core/Scannable$Attr;
if_acmpne 1
aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.cancelled:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
1: StackMap locals:
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.REQUESTED_FROM_DOWNSTREAM:Lreactor/core/Scannable$Attr;
if_acmpne 2
aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.requested:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
areturn
2: StackMap locals:
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.TERMINATED:Lreactor/core/Scannable$Attr;
if_acmpne 4
aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.done:I
ifne 3
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
StackMap locals:
StackMap stack:
3: iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
4: StackMap locals:
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.ERROR:Lreactor/core/Scannable$Attr;
if_acmpne 5
aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.error:Ljava/lang/Throwable;
areturn
5: StackMap locals:
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.RUN_STYLE:Lreactor/core/Scannable$Attr;
if_acmpne 6
getstatic reactor.core.Scannable$Attr$RunStyle.SYNC:Lreactor/core/Scannable$Attr$RunStyle;
areturn
6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial reactor.core.publisher.InnerProducer.scanUnsafe:(Lreactor/core/Scannable$Attr;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain<TT;>;
0 7 1 key Lreactor/core/Scannable$Attr;
RuntimeVisibleAnnotations:
reactor.util.annotation.Nullable()
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=1, locals=1, args_size=1
start local 0 0: aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.subscribers:[Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialInner;
invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain<TT;>;
Signature: ()Ljava/util/stream/Stream<+Lreactor/core/Scannable;>;
public void request(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: lload 1
invokestatic reactor.core.publisher.Operators.validate:(J)Z
ifeq 3
1: getstatic reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.REQUESTED:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
lload 1
invokestatic reactor.core.publisher.Operators.addCap:(Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;Ljava/lang/Object;J)J
pop2
2: aload 0
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.drain:()V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain<TT;>;
0 4 1 n J
MethodParameters:
Name Flags
n
public void cancel();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.cancelled:Z
ifne 5
1: aload 0
iconst_1
putfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.cancelled:Z
2: aload 0
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.cancelAll:()V
3: getstatic reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.WIP:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndIncrement:(Ljava/lang/Object;)I
ifne 5
4: aload 0
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.cleanup:()V
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain<TT;>;
void cancelAll();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.subscribers:[Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialInner;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 4
StackMap locals: reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain top int int reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 1
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner.cancel:()V
end local 1 3: iinc 2 1
StackMap locals:
StackMap stack:
4: iload 2
iload 3
if_icmplt 1
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain<TT;>;
2 3 1 s Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialInner<TT;>;
void cleanup();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.subscribers:[Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialInner;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 4
StackMap locals: reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain top int int reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 1
aconst_null
putfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner.queue:Ljava/util/Queue;
end local 1 3: iinc 2 1
StackMap locals:
StackMap stack:
4: iload 2
iload 3
if_icmplt 1
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain<TT;>;
2 3 1 s Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialInner<TT;>;
void onNext(reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner<T>, );
descriptor: (Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialInner;Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.wip:I
ifne 15
getstatic reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.WIP:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 15
1: aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.requested:J
lconst_0
lcmp
ifeq 7
2: aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.actual:Lreactor/core/CoreSubscriber;
aload 2
invokeinterface reactor.core.CoreSubscriber.onNext:(Ljava/lang/Object;)V
3: aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.requested:J
ldc 9223372036854775807
lcmp
ifeq 5
4: getstatic reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.REQUESTED:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.decrementAndGet:(Ljava/lang/Object;)J
pop2
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner.requestOne:()V
6: goto 13
7: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.queueSupplier:Ljava/util/function/Supplier;
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner.getQueue:(Ljava/util/function/Supplier;)Ljava/util/Queue;
astore 3
start local 3 8: aload 3
aload 2
invokeinterface java.util.Queue.offer:(Ljava/lang/Object;)Z
ifne 13
9: aload 0
aload 0
ldc "Queue is full: Reactive Streams source doesn't respect backpressure"
invokestatic reactor.core.Exceptions.failWithOverflow:(Ljava/lang/String;)Ljava/lang/IllegalStateException;
aload 2
10: aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.actual:Lreactor/core/CoreSubscriber;
invokeinterface reactor.core.CoreSubscriber.currentContext:()Lreactor/util/context/Context;
11: invokestatic reactor.core.publisher.Operators.onOperatorError:(Lorg/reactivestreams/Subscription;Ljava/lang/Throwable;Ljava/lang/Object;Lreactor/util/context/Context;)Ljava/lang/Throwable;
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.onError:(Ljava/lang/Throwable;)V
12: return
end local 3 13: StackMap locals:
StackMap stack:
getstatic reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.WIP:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.decrementAndGet:(Ljava/lang/Object;)I
ifne 23
14: return
15: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.queueSupplier:Ljava/util/function/Supplier;
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner.getQueue:(Ljava/util/function/Supplier;)Ljava/util/Queue;
astore 3
start local 3 16: aload 3
aload 2
invokeinterface java.util.Queue.offer:(Ljava/lang/Object;)Z
ifne 21
17: aload 0
aload 0
ldc "Queue is full: Reactive Streams source doesn't respect backpressure"
invokestatic reactor.core.Exceptions.failWithOverflow:(Ljava/lang/String;)Ljava/lang/IllegalStateException;
aload 2
18: aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.actual:Lreactor/core/CoreSubscriber;
invokeinterface reactor.core.CoreSubscriber.currentContext:()Lreactor/util/context/Context;
19: invokestatic reactor.core.publisher.Operators.onOperatorError:(Lorg/reactivestreams/Subscription;Ljava/lang/Throwable;Ljava/lang/Object;Lreactor/util/context/Context;)Ljava/lang/Throwable;
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.onError:(Ljava/lang/Throwable;)V
20: return
21: StackMap locals: java.util.Queue
StackMap stack:
getstatic reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.WIP:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndIncrement:(Ljava/lang/Object;)I
ifeq 23
22: return
end local 3 23: StackMap locals:
StackMap stack:
aload 0
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.drainLoop:()V
24: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain<TT;>;
0 25 1 inner Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialInner<TT;>;
0 25 2 value TT;
8 13 3 q Ljava/util/Queue<TT;>;
16 23 3 q Ljava/util/Queue<TT;>;
Signature: (Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialInner<TT;>;TT;)V
MethodParameters:
Name Flags
inner
value
void onError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: getstatic reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.ERROR:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
aload 0
aconst_null
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 4
1: aload 0
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.cancelAll:()V
2: aload 0
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.drain:()V
3: goto 6
4: StackMap locals:
StackMap stack:
aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.error:Ljava/lang/Throwable;
aload 1
if_acmpeq 6
5: aload 1
aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.actual:Lreactor/core/CoreSubscriber;
invokeinterface reactor.core.CoreSubscriber.currentContext:()Lreactor/util/context/Context;
invokestatic reactor.core.publisher.Operators.onErrorDropped:(Ljava/lang/Throwable;Lreactor/util/context/Context;)V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain<TT;>;
0 7 1 ex Ljava/lang/Throwable;
MethodParameters:
Name Flags
ex
void onComplete();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.DONE:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.decrementAndGet:(Ljava/lang/Object;)I
ifge 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.drain:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain<TT;>;
void drain();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.WIP:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndIncrement:(Ljava/lang/Object;)I
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.drainLoop:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain<TT;>;
void drainLoop();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=16, args_size=1
start local 0 0: iconst_1
istore 1
start local 1 1: aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.subscribers:[Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialInner;
astore 2
start local 2 2: aload 2
arraylength
istore 3
start local 3 3: aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.actual:Lreactor/core/CoreSubscriber;
astore 4
start local 4 4: StackMap locals: reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain int reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner[] int org.reactivestreams.Subscriber
StackMap stack:
aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.requested:J
lstore 5
start local 5 5: lconst_0
lstore 7
start local 7 6: goto 38
7: StackMap locals: long long
StackMap stack:
aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.cancelled:Z
ifeq 10
8: aload 0
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.cleanup:()V
9: return
10: StackMap locals:
StackMap stack:
aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.error:Ljava/lang/Throwable;
astore 9
start local 9 11: aload 9
ifnull 15
12: aload 0
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.cleanup:()V
13: aload 4
aload 9
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
14: return
15: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.done:I
ifne 16
iconst_1
goto 17
StackMap locals:
StackMap stack:
16: iconst_0
StackMap locals:
StackMap stack: int
17: istore 10
start local 10 18: iconst_1
istore 11
start local 11 19: iconst_0
istore 12
start local 12 20: goto 32
21: StackMap locals: int int int
StackMap stack:
aload 2
iload 12
aaload
astore 13
start local 13 22: aload 13
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner.queue:Ljava/util/Queue;
astore 14
start local 14 23: aload 14
ifnull 31
24: aload 14
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
astore 15
start local 15 25: aload 15
ifnull 31
26: iconst_0
istore 11
27: aload 4
aload 15
invokeinterface org.reactivestreams.Subscriber.onNext:(Ljava/lang/Object;)V
28: aload 13
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner.requestOne:()V
29: lload 7
lconst_1
ladd
dup2
lstore 7
lload 5
lcmp
ifne 31
30: goto 39
end local 15 end local 14 end local 13 31: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
32: iload 12
iload 3
if_icmplt 21
end local 12 33: iload 10
ifeq 36
iload 11
ifeq 36
34: aload 4
invokeinterface org.reactivestreams.Subscriber.onComplete:()V
35: return
36: StackMap locals:
StackMap stack:
iload 11
ifeq 38
37: goto 39
end local 11 end local 10 end local 9 38: StackMap locals:
StackMap stack:
lload 7
lload 5
lcmp
ifne 7
39: StackMap locals:
StackMap stack:
lload 7
lload 5
lcmp
ifne 64
40: aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.cancelled:Z
ifeq 43
41: aload 0
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.cleanup:()V
42: return
43: StackMap locals:
StackMap stack:
aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.error:Ljava/lang/Throwable;
astore 9
start local 9 44: aload 9
ifnull 48
45: aload 0
invokevirtual reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.cleanup:()V
46: aload 4
aload 9
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
47: return
48: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.done:I
ifne 49
iconst_1
goto 50
StackMap locals:
StackMap stack:
49: iconst_0
StackMap locals:
StackMap stack: int
50: istore 10
start local 10 51: iconst_1
istore 11
start local 11 52: iconst_0
istore 12
start local 12 53: goto 60
54: StackMap locals: int int int
StackMap stack:
aload 2
iload 12
aaload
astore 13
start local 13 55: aload 13
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner.queue:Ljava/util/Queue;
astore 14
start local 14 56: aload 14
ifnull 59
aload 14
invokeinterface java.util.Queue.isEmpty:()Z
ifne 59
57: iconst_0
istore 11
58: goto 61
end local 14 end local 13 59: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
60: iload 12
iload 3
if_icmplt 54
end local 12 61: StackMap locals:
StackMap stack:
iload 10
ifeq 64
iload 11
ifeq 64
62: aload 4
invokeinterface org.reactivestreams.Subscriber.onComplete:()V
63: return
end local 11 end local 10 end local 9 64: StackMap locals:
StackMap stack:
lload 7
lconst_0
lcmp
ifeq 66
lload 5
ldc 9223372036854775807
lcmp
ifeq 66
65: getstatic reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.REQUESTED:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
lload 7
lneg
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.addAndGet:(Ljava/lang/Object;J)J
pop2
66: StackMap locals:
StackMap stack:
aload 0
getfield reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.wip:I
istore 9
start local 9 67: iload 9
iload 1
if_icmpne 71
68: getstatic reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain.WIP:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 1
ineg
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.addAndGet:(Ljava/lang/Object;I)I
istore 1
69: iload 1
ifne 4
70: goto 73
71: StackMap locals: int
StackMap stack:
iload 9
istore 1
end local 9 end local 7 end local 5 72: goto 4
73: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 74 0 this Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialMain<TT;>;
1 74 1 missed I
2 74 2 s [Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialInner;
3 74 3 n I
4 74 4 a Lorg/reactivestreams/Subscriber<-TT;>;
5 72 5 r J
6 72 7 e J
11 38 9 ex Ljava/lang/Throwable;
18 38 10 d Z
19 38 11 empty Z
20 33 12 i I
22 31 13 inner Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialInner<TT;>;
23 31 14 q Ljava/util/Queue<TT;>;
25 31 15 v TT;
44 64 9 ex Ljava/lang/Throwable;
51 64 10 d Z
52 64 11 empty Z
53 61 12 i I
55 59 13 inner Lreactor/core/publisher/ParallelMergeSequential$MergeSequentialInner<TT;>;
56 59 14 q Ljava/util/Queue<TT;>;
67 72 9 w I
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lreactor/core/publisher/InnerProducer<TT;>;
SourceFile: "ParallelMergeSequential.java"
NestHost: reactor.core.publisher.ParallelMergeSequential
InnerClasses:
public Attr = reactor.core.Scannable$Attr of reactor.core.Scannable
public final RunStyle = reactor.core.Scannable$Attr$RunStyle of reactor.core.Scannable$Attr
final MergeSequentialInner = reactor.core.publisher.ParallelMergeSequential$MergeSequentialInner of reactor.core.publisher.ParallelMergeSequential
final MergeSequentialMain = reactor.core.publisher.ParallelMergeSequential$MergeSequentialMain of reactor.core.publisher.ParallelMergeSequential