final class io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter<T> extends java.util.concurrent.atomic.AtomicInteger implements io.reactivex.ObservableEmitter<T>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter
super_class: java.util.concurrent.atomic.AtomicInteger
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4883307006032401862
final io.reactivex.ObservableEmitter<T> emitter;
descriptor: Lio/reactivex/ObservableEmitter;
flags: (0x0010) ACC_FINAL
Signature: Lio/reactivex/ObservableEmitter<TT;>;
final io.reactivex.internal.util.AtomicThrowable error;
descriptor: Lio/reactivex/internal/util/AtomicThrowable;
flags: (0x0010) ACC_FINAL
final io.reactivex.internal.queue.SpscLinkedArrayQueue<T> queue;
descriptor: Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
flags: (0x0010) ACC_FINAL
Signature: Lio/reactivex/internal/queue/SpscLinkedArrayQueue<TT;>;
volatile boolean done;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
void <init>(io.reactivex.ObservableEmitter<T>);
descriptor: (Lio/reactivex/ObservableEmitter;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
1: aload 0
aload 1
putfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.emitter:Lio/reactivex/ObservableEmitter;
2: aload 0
new io.reactivex.internal.util.AtomicThrowable
dup
invokespecial io.reactivex.internal.util.AtomicThrowable.<init>:()V
putfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.error:Lio/reactivex/internal/util/AtomicThrowable;
3: aload 0
new io.reactivex.internal.queue.SpscLinkedArrayQueue
dup
bipush 16
invokespecial io.reactivex.internal.queue.SpscLinkedArrayQueue.<init>:(I)V
putfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/reactivex/internal/operators/observable/ObservableCreate$SerializedEmitter<TT;>;
0 5 1 emitter Lio/reactivex/ObservableEmitter<TT;>;
Signature: (Lio/reactivex/ObservableEmitter<TT;>;)V
MethodParameters:
Name Flags
emitter
public void onNext();
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.emitter:Lio/reactivex/ObservableEmitter;
invokeinterface io.reactivex.ObservableEmitter.isDisposed:()Z
ifne 1
aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.done:Z
ifeq 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 1
ifnonnull 5
3: aload 0
new java.lang.NullPointerException
dup
ldc "onNext called with null. Null values are generally not allowed in 2.x operators and sources."
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
invokevirtual io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.onError:(Ljava/lang/Throwable;)V
4: return
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.get:()I
ifne 9
aload 0
iconst_0
iconst_1
invokevirtual io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.compareAndSet:(II)Z
ifeq 9
6: aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.emitter:Lio/reactivex/ObservableEmitter;
aload 1
invokeinterface io.reactivex.ObservableEmitter.onNext:(Ljava/lang/Object;)V
7: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.decrementAndGet:()I
ifne 18
8: return
9: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
astore 2
start local 2 10: aload 2
dup
astore 3
monitorenter
11: aload 2
aload 1
invokeinterface io.reactivex.internal.fuseable.SimpleQueue.offer:(Ljava/lang/Object;)Z
pop
12: aload 3
monitorexit
13: goto 16
StackMap locals: io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter java.lang.Object io.reactivex.internal.fuseable.SimpleQueue io.reactivex.internal.fuseable.SimpleQueue
StackMap stack: java.lang.Throwable
14: aload 3
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.getAndIncrement:()I
ifeq 18
17: return
end local 2 18: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.drainLoop:()V
19: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lio/reactivex/internal/operators/observable/ObservableCreate$SerializedEmitter<TT;>;
0 20 1 t TT;
10 18 2 q Lio/reactivex/internal/fuseable/SimpleQueue<TT;>;
Exception table:
from to target type
11 13 14 any
14 15 14 any
Signature: (TT;)V
MethodParameters:
Name Flags
t
public void onError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.tryOnError:(Ljava/lang/Throwable;)Z
ifne 2
1: aload 1
invokestatic io.reactivex.plugins.RxJavaPlugins.onError:(Ljava/lang/Throwable;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/reactivex/internal/operators/observable/ObservableCreate$SerializedEmitter<TT;>;
0 3 1 t Ljava/lang/Throwable;
MethodParameters:
Name Flags
t
public boolean tryOnError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.emitter:Lio/reactivex/ObservableEmitter;
invokeinterface io.reactivex.ObservableEmitter.isDisposed:()Z
ifne 1
aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.done:Z
ifeq 2
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
ifnonnull 4
3: new java.lang.NullPointerException
dup
ldc "onError called with null. Null values are generally not allowed in 2.x operators and sources."
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
astore 1
4: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.error:Lio/reactivex/internal/util/AtomicThrowable;
aload 1
invokevirtual io.reactivex.internal.util.AtomicThrowable.addThrowable:(Ljava/lang/Throwable;)Z
ifeq 8
5: aload 0
iconst_1
putfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.done:Z
6: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.drain:()V
7: iconst_1
ireturn
8: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/reactivex/internal/operators/observable/ObservableCreate$SerializedEmitter<TT;>;
0 9 1 t Ljava/lang/Throwable;
MethodParameters:
Name Flags
t
public void onComplete();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.emitter:Lio/reactivex/ObservableEmitter;
invokeinterface io.reactivex.ObservableEmitter.isDisposed:()Z
ifne 1
aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.done:Z
ifeq 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.done:Z
3: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.drain:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/reactivex/internal/operators/observable/ObservableCreate$SerializedEmitter<TT;>;
void drain();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.getAndIncrement:()I
ifne 2
1: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.drainLoop:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/reactivex/internal/operators/observable/ObservableCreate$SerializedEmitter<TT;>;
void drainLoop();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=8, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.emitter:Lio/reactivex/ObservableEmitter;
astore 1
start local 1 1: aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
astore 2
start local 2 2: aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.error:Lio/reactivex/internal/util/AtomicThrowable;
astore 3
start local 3 3: iconst_1
istore 4
start local 4 4: StackMap locals: io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter io.reactivex.ObservableEmitter io.reactivex.internal.queue.SpscLinkedArrayQueue io.reactivex.internal.util.AtomicThrowable int
StackMap stack:
aload 1
invokeinterface io.reactivex.ObservableEmitter.isDisposed:()Z
ifeq 7
5: aload 2
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.clear:()V
6: return
7: StackMap locals:
StackMap stack:
aload 3
invokevirtual io.reactivex.internal.util.AtomicThrowable.get:()Ljava/lang/Object;
ifnull 11
8: aload 2
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.clear:()V
9: aload 1
aload 3
invokevirtual io.reactivex.internal.util.AtomicThrowable.terminate:()Ljava/lang/Throwable;
invokeinterface io.reactivex.ObservableEmitter.onError:(Ljava/lang/Throwable;)V
10: return
11: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.done:Z
istore 5
start local 5 12: aload 2
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.poll:()Ljava/lang/Object;
astore 6
start local 6 13: aload 6
ifnonnull 14
iconst_1
goto 15
StackMap locals: int java.lang.Object
StackMap stack:
14: iconst_0
StackMap locals:
StackMap stack: int
15: istore 7
start local 7 16: iload 5
ifeq 19
iload 7
ifeq 19
17: aload 1
invokeinterface io.reactivex.ObservableEmitter.onComplete:()V
18: return
19: StackMap locals: int
StackMap stack:
iload 7
ifeq 21
20: goto 23
21: StackMap locals:
StackMap stack:
aload 1
aload 6
invokeinterface io.reactivex.ObservableEmitter.onNext:(Ljava/lang/Object;)V
end local 7 end local 6 end local 5 22: goto 4
23: StackMap locals:
StackMap stack:
aload 0
iload 4
ineg
invokevirtual io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.addAndGet:(I)I
istore 4
24: iload 4
ifne 4
25: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lio/reactivex/internal/operators/observable/ObservableCreate$SerializedEmitter<TT;>;
1 26 1 e Lio/reactivex/ObservableEmitter<TT;>;
2 26 2 q Lio/reactivex/internal/queue/SpscLinkedArrayQueue<TT;>;
3 26 3 error Lio/reactivex/internal/util/AtomicThrowable;
4 26 4 missed I
12 22 5 d Z
13 22 6 v TT;
16 22 7 empty Z
public void setDisposable(io.reactivex.disposables.Disposable);
descriptor: (Lio/reactivex/disposables/Disposable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.emitter:Lio/reactivex/ObservableEmitter;
aload 1
invokeinterface io.reactivex.ObservableEmitter.setDisposable:(Lio/reactivex/disposables/Disposable;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/reactivex/internal/operators/observable/ObservableCreate$SerializedEmitter<TT;>;
0 2 1 d Lio/reactivex/disposables/Disposable;
MethodParameters:
Name Flags
d
public void setCancellable(io.reactivex.functions.Cancellable);
descriptor: (Lio/reactivex/functions/Cancellable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.emitter:Lio/reactivex/ObservableEmitter;
aload 1
invokeinterface io.reactivex.ObservableEmitter.setCancellable:(Lio/reactivex/functions/Cancellable;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/reactivex/internal/operators/observable/ObservableCreate$SerializedEmitter<TT;>;
0 2 1 c Lio/reactivex/functions/Cancellable;
MethodParameters:
Name Flags
c
public boolean isDisposed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.emitter:Lio/reactivex/ObservableEmitter;
invokeinterface io.reactivex.ObservableEmitter.isDisposed:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/internal/operators/observable/ObservableCreate$SerializedEmitter<TT;>;
public io.reactivex.ObservableEmitter<T> serialize();
descriptor: ()Lio/reactivex/ObservableEmitter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/internal/operators/observable/ObservableCreate$SerializedEmitter<TT;>;
Signature: ()Lio/reactivex/ObservableEmitter<TT;>;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter.emitter:Lio/reactivex/ObservableEmitter;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/internal/operators/observable/ObservableCreate$SerializedEmitter<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/util/concurrent/atomic/AtomicInteger;Lio/reactivex/ObservableEmitter<TT;>;
SourceFile: "ObservableCreate.java"
NestHost: io.reactivex.internal.operators.observable.ObservableCreate
InnerClasses:
final SerializedEmitter = io.reactivex.internal.operators.observable.ObservableCreate$SerializedEmitter of io.reactivex.internal.operators.observable.ObservableCreate