final class io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber<T> extends io.reactivex.internal.subscriptions.DeferredScalarSubscription<T>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber
super_class: io.reactivex.internal.subscriptions.DeferredScalarSubscription
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -5370107872170712765
final io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullInnerSubscriber<T>[] subscribers;
descriptor: [Lio/reactivex/internal/operators/parallel/ParallelReduceFull$ParallelReduceFullInnerSubscriber;
flags: (0x0010) ACC_FINAL
Signature: [Lio/reactivex/internal/operators/parallel/ParallelReduceFull$ParallelReduceFullInnerSubscriber<TT;>;
final io.reactivex.functions.BiFunction<T, T, T> reducer;
descriptor: Lio/reactivex/functions/BiFunction;
flags: (0x0010) ACC_FINAL
Signature: Lio/reactivex/functions/BiFunction<TT;TT;TT;>;
final java.util.concurrent.atomic.AtomicReference<io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair<T>> current;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lio/reactivex/internal/operators/parallel/ParallelReduceFull$SlotPair<TT;>;>;
final java.util.concurrent.atomic.AtomicInteger remaining;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0010) ACC_FINAL
final java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> error;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Throwable;>;
void <init>(org.reactivestreams.Subscriber<? super T>, int, io.reactivex.functions.BiFunction<T, T, T>);
descriptor: (Lorg/reactivestreams/Subscriber;ILio/reactivex/functions/BiFunction;)V
flags: (0x0000)
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokespecial io.reactivex.internal.subscriptions.DeferredScalarSubscription.<init>:(Lorg/reactivestreams/Subscriber;)V
1: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
putfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.current:Ljava/util/concurrent/atomic/AtomicReference;
2: aload 0
new java.util.concurrent.atomic.AtomicInteger
dup
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
putfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.remaining:Ljava/util/concurrent/atomic/AtomicInteger;
3: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
putfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.error:Ljava/util/concurrent/atomic/AtomicReference;
4: iload 2
anewarray io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullInnerSubscriber
astore 4
start local 4 5: iconst_0
istore 5
start local 5 6: goto 9
7: StackMap locals: io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber org.reactivestreams.Subscriber int io.reactivex.functions.BiFunction io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullInnerSubscriber[] int
StackMap stack:
aload 4
iload 5
new io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullInnerSubscriber
dup
aload 0
aload 3
invokespecial io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullInnerSubscriber.<init>:(Lio/reactivex/internal/operators/parallel/ParallelReduceFull$ParallelReduceFullMainSubscriber;Lio/reactivex/functions/BiFunction;)V
aastore
8: iinc 5 1
StackMap locals:
StackMap stack:
9: iload 5
iload 2
if_icmplt 7
end local 5 10: aload 0
aload 4
putfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.subscribers:[Lio/reactivex/internal/operators/parallel/ParallelReduceFull$ParallelReduceFullInnerSubscriber;
11: aload 0
aload 3
putfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.reducer:Lio/reactivex/functions/BiFunction;
12: aload 0
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.remaining:Ljava/util/concurrent/atomic/AtomicInteger;
iload 2
invokevirtual java.util.concurrent.atomic.AtomicInteger.lazySet:(I)V
13: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lio/reactivex/internal/operators/parallel/ParallelReduceFull$ParallelReduceFullMainSubscriber<TT;>;
0 14 1 subscriber Lorg/reactivestreams/Subscriber<-TT;>;
0 14 2 n I
0 14 3 reducer Lio/reactivex/functions/BiFunction<TT;TT;TT;>;
5 14 4 a [Lio/reactivex/internal/operators/parallel/ParallelReduceFull$ParallelReduceFullInnerSubscriber;
6 10 5 i I
Signature: (Lorg/reactivestreams/Subscriber<-TT;>;ILio/reactivex/functions/BiFunction<TT;TT;TT;>;)V
MethodParameters:
Name Flags
subscriber
n
reducer
io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair<T> addValue(T);
descriptor: (Ljava/lang/Object;)Lio/reactivex/internal/operators/parallel/ParallelReduceFull$SlotPair;
flags: (0x0000)
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.current:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair
astore 2
start local 2 1: aload 2
ifnonnull 5
2: new io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair
dup
invokespecial io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair.<init>:()V
astore 2
3: aload 0
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.current:Ljava/util/concurrent/atomic/AtomicReference;
aconst_null
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 5
4: goto 0
5: StackMap locals: io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair
StackMap stack:
aload 2
invokevirtual io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair.tryAcquireSlot:()I
istore 3
start local 3 6: iload 3
ifge 9
7: aload 0
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.current:Ljava/util/concurrent/atomic/AtomicReference;
aload 2
aconst_null
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
pop
8: goto 0
9: StackMap locals: int
StackMap stack:
iload 3
ifne 12
10: aload 2
aload 1
putfield io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair.first:Ljava/lang/Object;
11: goto 13
12: StackMap locals:
StackMap stack:
aload 2
aload 1
putfield io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair.second:Ljava/lang/Object;
13: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair.releaseSlot:()Z
ifeq 16
14: aload 0
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.current:Ljava/util/concurrent/atomic/AtomicReference;
aload 2
aconst_null
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
pop
15: aload 2
areturn
16: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/reactivex/internal/operators/parallel/ParallelReduceFull$ParallelReduceFullMainSubscriber<TT;>;
0 17 1 value TT;
1 17 2 curr Lio/reactivex/internal/operators/parallel/ParallelReduceFull$SlotPair<TT;>;
6 17 3 c I
Signature: (TT;)Lio/reactivex/internal/operators/parallel/ParallelReduceFull$SlotPair<TT;>;
MethodParameters:
Name Flags
value
public void cancel();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.subscribers:[Lio/reactivex/internal/operators/parallel/ParallelReduceFull$ParallelReduceFullInnerSubscriber;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 4
StackMap locals: io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber top int int io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullInnerSubscriber[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 1
invokevirtual io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullInnerSubscriber.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 Lio/reactivex/internal/operators/parallel/ParallelReduceFull$ParallelReduceFullMainSubscriber<TT;>;
2 3 1 inner Lio/reactivex/internal/operators/parallel/ParallelReduceFull$ParallelReduceFullInnerSubscriber<TT;>;
void innerError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.error:Ljava/util/concurrent/atomic/AtomicReference;
aconst_null
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 4
1: aload 0
invokevirtual io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.cancel:()V
2: aload 0
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.downstream:Lorg/reactivestreams/Subscriber;
aload 1
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
3: goto 6
4: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.error:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
if_acmpeq 6
5: aload 1
invokestatic io.reactivex.plugins.RxJavaPlugins.onError:(Ljava/lang/Throwable;)V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/reactivex/internal/operators/parallel/ParallelReduceFull$ParallelReduceFullMainSubscriber<TT;>;
0 7 1 ex Ljava/lang/Throwable;
MethodParameters:
Name Flags
ex
void innerComplete();
descriptor: (Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnull 9
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.addValue:(Ljava/lang/Object;)Lio/reactivex/internal/operators/parallel/ParallelReduceFull$SlotPair;
astore 2
start local 2 2: aload 2
ifnull 9
3: aload 0
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.reducer:Lio/reactivex/functions/BiFunction;
aload 2
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair.first:Ljava/lang/Object;
aload 2
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair.second:Ljava/lang/Object;
invokeinterface io.reactivex.functions.BiFunction.apply:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
ldc "The reducer returned a null value"
invokestatic io.reactivex.internal.functions.ObjectHelper.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
astore 1
4: goto 1
StackMap locals: io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber java.lang.Object io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair
StackMap stack: java.lang.Throwable
5: astore 3
start local 3 6: aload 3
invokestatic io.reactivex.exceptions.Exceptions.throwIfFatal:(Ljava/lang/Throwable;)V
7: aload 0
aload 3
invokevirtual io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.innerError:(Ljava/lang/Throwable;)V
8: return
end local 3 end local 2 9: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.remaining:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
ifne 16
10: aload 0
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.current:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair
astore 2
start local 2 11: aload 0
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.current:Ljava/util/concurrent/atomic/AtomicReference;
aconst_null
invokevirtual java.util.concurrent.atomic.AtomicReference.lazySet:(Ljava/lang/Object;)V
12: aload 2
ifnull 15
13: aload 0
aload 2
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair.first:Ljava/lang/Object;
invokevirtual io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.complete:(Ljava/lang/Object;)V
14: goto 16
15: StackMap locals: io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber.downstream:Lorg/reactivestreams/Subscriber;
invokeinterface org.reactivestreams.Subscriber.onComplete:()V
end local 2 16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/reactivex/internal/operators/parallel/ParallelReduceFull$ParallelReduceFullMainSubscriber<TT;>;
0 17 1 value TT;
2 9 2 sp Lio/reactivex/internal/operators/parallel/ParallelReduceFull$SlotPair<TT;>;
6 9 3 ex Ljava/lang/Throwable;
11 16 2 sp Lio/reactivex/internal/operators/parallel/ParallelReduceFull$SlotPair<TT;>;
Exception table:
from to target type
3 4 5 Class java.lang.Throwable
Signature: (TT;)V
MethodParameters:
Name Flags
value
}
Signature: <T:Ljava/lang/Object;>Lio/reactivex/internal/subscriptions/DeferredScalarSubscription<TT;>;
SourceFile: "ParallelReduceFull.java"
NestHost: io.reactivex.internal.operators.parallel.ParallelReduceFull
InnerClasses:
final ParallelReduceFullInnerSubscriber = io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullInnerSubscriber of io.reactivex.internal.operators.parallel.ParallelReduceFull
final ParallelReduceFullMainSubscriber = io.reactivex.internal.operators.parallel.ParallelReduceFull$ParallelReduceFullMainSubscriber of io.reactivex.internal.operators.parallel.ParallelReduceFull
final SlotPair = io.reactivex.internal.operators.parallel.ParallelReduceFull$SlotPair of io.reactivex.internal.operators.parallel.ParallelReduceFull