final class io.reactivex.internal.operators.flowable.BlockingFlowableNext$NextSubscriber<T> extends io.reactivex.subscribers.DisposableSubscriber<io.reactivex.Notification<T>>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.operators.flowable.BlockingFlowableNext$NextSubscriber
super_class: io.reactivex.subscribers.DisposableSubscriber
{
private final java.util.concurrent.BlockingQueue<io.reactivex.Notification<T>> buf;
descriptor: Ljava/util/concurrent/BlockingQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/BlockingQueue<Lio/reactivex/Notification<TT;>;>;
final java.util.concurrent.atomic.AtomicInteger waiting;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0010) ACC_FINAL
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial io.reactivex.subscribers.DisposableSubscriber.<init>:()V
1: aload 0
new java.util.concurrent.ArrayBlockingQueue
dup
iconst_1
invokespecial java.util.concurrent.ArrayBlockingQueue.<init>:(I)V
putfield io.reactivex.internal.operators.flowable.BlockingFlowableNext$NextSubscriber.buf:Ljava/util/concurrent/BlockingQueue;
2: aload 0
new java.util.concurrent.atomic.AtomicInteger
dup
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
putfield io.reactivex.internal.operators.flowable.BlockingFlowableNext$NextSubscriber.waiting:Ljava/util/concurrent/atomic/AtomicInteger;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/reactivex/internal/operators/flowable/BlockingFlowableNext$NextSubscriber<TT;>;
public void onComplete();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/internal/operators/flowable/BlockingFlowableNext$NextSubscriber<TT;>;
public void onError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic io.reactivex.plugins.RxJavaPlugins.onError:(Ljava/lang/Throwable;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/reactivex/internal/operators/flowable/BlockingFlowableNext$NextSubscriber<TT;>;
0 2 1 e Ljava/lang/Throwable;
MethodParameters:
Name Flags
e
public void onNext(io.reactivex.Notification<T>);
descriptor: (Lio/reactivex/Notification;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.flowable.BlockingFlowableNext$NextSubscriber.waiting:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndSet:(I)I
iconst_1
if_icmpeq 1
aload 1
invokevirtual io.reactivex.Notification.isOnNext:()Z
ifne 7
1: StackMap locals:
StackMap stack:
aload 1
astore 2
start local 2 2: goto 6
3: StackMap locals: io.reactivex.Notification
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.BlockingFlowableNext$NextSubscriber.buf:Ljava/util/concurrent/BlockingQueue;
invokeinterface java.util.concurrent.BlockingQueue.poll:()Ljava/lang/Object;
checkcast io.reactivex.Notification
astore 3
start local 3 4: aload 3
ifnull 6
aload 3
invokevirtual io.reactivex.Notification.isOnNext:()Z
ifne 6
5: aload 3
astore 2
end local 3 6: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.BlockingFlowableNext$NextSubscriber.buf:Ljava/util/concurrent/BlockingQueue;
aload 2
invokeinterface java.util.concurrent.BlockingQueue.offer:(Ljava/lang/Object;)Z
ifeq 3
end local 2 7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/reactivex/internal/operators/flowable/BlockingFlowableNext$NextSubscriber<TT;>;
0 8 1 args Lio/reactivex/Notification<TT;>;
2 7 2 toOffer Lio/reactivex/Notification<TT;>;
4 6 3 concurrentItem Lio/reactivex/Notification<TT;>;
Signature: (Lio/reactivex/Notification<TT;>;)V
MethodParameters:
Name Flags
args
public io.reactivex.Notification<T> takeNext();
descriptor: ()Lio/reactivex/Notification;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.reactivex.internal.operators.flowable.BlockingFlowableNext$NextSubscriber.setWaiting:()V
1: invokestatic io.reactivex.internal.util.BlockingHelper.verifyNonBlocking:()V
2: aload 0
getfield io.reactivex.internal.operators.flowable.BlockingFlowableNext$NextSubscriber.buf:Ljava/util/concurrent/BlockingQueue;
invokeinterface java.util.concurrent.BlockingQueue.take:()Ljava/lang/Object;
checkcast io.reactivex.Notification
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/reactivex/internal/operators/flowable/BlockingFlowableNext$NextSubscriber<TT;>;
Exceptions:
throws java.lang.InterruptedException
Signature: ()Lio/reactivex/Notification<TT;>;
void setWaiting();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.flowable.BlockingFlowableNext$NextSubscriber.waiting:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/reactivex/internal/operators/flowable/BlockingFlowableNext$NextSubscriber<TT;>;
public void onNext(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast io.reactivex.Notification
invokevirtual io.reactivex.internal.operators.flowable.BlockingFlowableNext$NextSubscriber.onNext:(Lio/reactivex/Notification;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
Signature: <T:Ljava/lang/Object;>Lio/reactivex/subscribers/DisposableSubscriber<Lio/reactivex/Notification<TT;>;>;
SourceFile: "BlockingFlowableNext.java"
NestHost: io.reactivex.internal.operators.flowable.BlockingFlowableNext
InnerClasses:
final NextSubscriber = io.reactivex.internal.operators.flowable.BlockingFlowableNext$NextSubscriber of io.reactivex.internal.operators.flowable.BlockingFlowableNext