public abstract class io.reactivex.internal.observers.QueueDrainObserver<T, U, V> extends io.reactivex.internal.observers.QueueDrainSubscriberPad2 implements io.reactivex.Observer<T>, io.reactivex.internal.util.ObservableQueueDrain<U, V>
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: io.reactivex.internal.observers.QueueDrainObserver
super_class: io.reactivex.internal.observers.QueueDrainSubscriberPad2
{
protected final io.reactivex.Observer<? super V> downstream;
descriptor: Lio/reactivex/Observer;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Lio/reactivex/Observer<-TV;>;
protected final io.reactivex.internal.fuseable.SimplePlainQueue<U> queue;
descriptor: Lio/reactivex/internal/fuseable/SimplePlainQueue;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Lio/reactivex/internal/fuseable/SimplePlainQueue<TU;>;
protected volatile boolean cancelled;
descriptor: Z
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
protected volatile boolean done;
descriptor: Z
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
protected java.lang.Throwable error;
descriptor: Ljava/lang/Throwable;
flags: (0x0004) ACC_PROTECTED
public void <init>(io.reactivex.Observer<? super V>, io.reactivex.internal.fuseable.SimplePlainQueue<U>);
descriptor: (Lio/reactivex/Observer;Lio/reactivex/internal/fuseable/SimplePlainQueue;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial io.reactivex.internal.observers.QueueDrainSubscriberPad2.<init>:()V
1: aload 0
aload 1
putfield io.reactivex.internal.observers.QueueDrainObserver.downstream:Lio/reactivex/Observer;
2: aload 0
aload 2
putfield io.reactivex.internal.observers.QueueDrainObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/reactivex/internal/observers/QueueDrainObserver<TT;TU;TV;>;
0 4 1 actual Lio/reactivex/Observer<-TV;>;
0 4 2 queue Lio/reactivex/internal/fuseable/SimplePlainQueue<TU;>;
Signature: (Lio/reactivex/Observer<-TV;>;Lio/reactivex/internal/fuseable/SimplePlainQueue<TU;>;)V
MethodParameters:
Name Flags
actual
queue
public final boolean cancelled();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.observers.QueueDrainObserver.cancelled:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/internal/observers/QueueDrainObserver<TT;TU;TV;>;
public final boolean done();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.observers.QueueDrainObserver.done:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/internal/observers/QueueDrainObserver<TT;TU;TV;>;
public final boolean enter();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.observers.QueueDrainObserver.wip:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndIncrement:()I
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 Lio/reactivex/internal/observers/QueueDrainObserver<TT;TU;TV;>;
public final boolean fastEnter();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.observers.QueueDrainObserver.wip:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
ifne 1
aload 0
getfield io.reactivex.internal.observers.QueueDrainObserver.wip:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicInteger.compareAndSet:(II)Z
ifeq 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 Lio/reactivex/internal/observers/QueueDrainObserver<TT;TU;TV;>;
protected final void fastPathEmit(U, boolean, io.reactivex.disposables.Disposable);
descriptor: (Ljava/lang/Object;ZLio/reactivex/disposables/Disposable;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.reactivex.internal.observers.QueueDrainObserver.downstream:Lio/reactivex/Observer;
astore 4
start local 4 1: aload 0
getfield io.reactivex.internal.observers.QueueDrainObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
astore 5
start local 5 2: aload 0
getfield io.reactivex.internal.observers.QueueDrainObserver.wip:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
ifne 6
aload 0
getfield io.reactivex.internal.observers.QueueDrainObserver.wip:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicInteger.compareAndSet:(II)Z
ifeq 6
3: aload 0
aload 4
aload 1
invokevirtual io.reactivex.internal.observers.QueueDrainObserver.accept:(Lio/reactivex/Observer;Ljava/lang/Object;)V
4: aload 0
iconst_m1
invokevirtual io.reactivex.internal.observers.QueueDrainObserver.leave:(I)I
ifne 9
5: return
6: StackMap locals: io.reactivex.Observer io.reactivex.internal.fuseable.SimplePlainQueue
StackMap stack:
aload 5
aload 1
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.offer:(Ljava/lang/Object;)Z
pop
7: aload 0
invokevirtual io.reactivex.internal.observers.QueueDrainObserver.enter:()Z
ifne 9
8: return
9: StackMap locals:
StackMap stack:
aload 5
aload 4
iload 2
aload 3
aload 0
invokestatic io.reactivex.internal.util.QueueDrainHelper.drainLoop:(Lio/reactivex/internal/fuseable/SimplePlainQueue;Lio/reactivex/Observer;ZLio/reactivex/disposables/Disposable;Lio/reactivex/internal/util/ObservableQueueDrain;)V
10: 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 11 0 this Lio/reactivex/internal/observers/QueueDrainObserver<TT;TU;TV;>;
0 11 1 value TU;
0 11 2 delayError Z
0 11 3 dispose Lio/reactivex/disposables/Disposable;
1 11 4 observer Lio/reactivex/Observer<-TV;>;
2 11 5 q Lio/reactivex/internal/fuseable/SimplePlainQueue<TU;>;
Signature: (TU;ZLio/reactivex/disposables/Disposable;)V
MethodParameters:
Name Flags
value
delayError
dispose
protected final void fastPathOrderedEmit(U, boolean, io.reactivex.disposables.Disposable);
descriptor: (Ljava/lang/Object;ZLio/reactivex/disposables/Disposable;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.reactivex.internal.observers.QueueDrainObserver.downstream:Lio/reactivex/Observer;
astore 4
start local 4 1: aload 0
getfield io.reactivex.internal.observers.QueueDrainObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
astore 5
start local 5 2: aload 0
getfield io.reactivex.internal.observers.QueueDrainObserver.wip:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
ifne 9
aload 0
getfield io.reactivex.internal.observers.QueueDrainObserver.wip:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicInteger.compareAndSet:(II)Z
ifeq 9
3: aload 5
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.isEmpty:()Z
ifeq 7
4: aload 0
aload 4
aload 1
invokevirtual io.reactivex.internal.observers.QueueDrainObserver.accept:(Lio/reactivex/Observer;Ljava/lang/Object;)V
5: aload 0
iconst_m1
invokevirtual io.reactivex.internal.observers.QueueDrainObserver.leave:(I)I
ifne 12
6: return
7: StackMap locals: io.reactivex.Observer io.reactivex.internal.fuseable.SimplePlainQueue
StackMap stack:
aload 5
aload 1
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.offer:(Ljava/lang/Object;)Z
pop
8: goto 12
9: StackMap locals:
StackMap stack:
aload 5
aload 1
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.offer:(Ljava/lang/Object;)Z
pop
10: aload 0
invokevirtual io.reactivex.internal.observers.QueueDrainObserver.enter:()Z
ifne 12
11: return
12: StackMap locals:
StackMap stack:
aload 5
aload 4
iload 2
aload 3
aload 0
invokestatic io.reactivex.internal.util.QueueDrainHelper.drainLoop:(Lio/reactivex/internal/fuseable/SimplePlainQueue;Lio/reactivex/Observer;ZLio/reactivex/disposables/Disposable;Lio/reactivex/internal/util/ObservableQueueDrain;)V
13: 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 14 0 this Lio/reactivex/internal/observers/QueueDrainObserver<TT;TU;TV;>;
0 14 1 value TU;
0 14 2 delayError Z
0 14 3 disposable Lio/reactivex/disposables/Disposable;
1 14 4 observer Lio/reactivex/Observer<-TV;>;
2 14 5 q Lio/reactivex/internal/fuseable/SimplePlainQueue<TU;>;
Signature: (TU;ZLio/reactivex/disposables/Disposable;)V
MethodParameters:
Name Flags
value
delayError
disposable
public final java.lang.Throwable error();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.observers.QueueDrainObserver.error:Ljava/lang/Throwable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/internal/observers/QueueDrainObserver<TT;TU;TV;>;
public final int leave(int);
descriptor: (I)I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.observers.QueueDrainObserver.wip:Ljava/util/concurrent/atomic/AtomicInteger;
iload 1
invokevirtual java.util.concurrent.atomic.AtomicInteger.addAndGet:(I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/internal/observers/QueueDrainObserver<TT;TU;TV;>;
0 1 1 m I
MethodParameters:
Name Flags
m
public void accept(io.reactivex.Observer<? super V>, );
descriptor: (Lio/reactivex/Observer;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=3, args_size=3
start local 0 start local 1 start local 2 0: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/internal/observers/QueueDrainObserver<TT;TU;TV;>;
0 1 1 a Lio/reactivex/Observer<-TV;>;
0 1 2 v TU;
Signature: (Lio/reactivex/Observer<-TV;>;TU;)V
MethodParameters:
Name Flags
a
v
}
Signature: <T:Ljava/lang/Object;U:Ljava/lang/Object;V:Ljava/lang/Object;>Lio/reactivex/internal/observers/QueueDrainSubscriberPad2;Lio/reactivex/Observer<TT;>;Lio/reactivex/internal/util/ObservableQueueDrain<TU;TV;>;
SourceFile: "QueueDrainObserver.java"