final class io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver<T> extends io.reactivex.internal.observers.QueueDrainObserver<T, java.lang.Object, io.reactivex.Observable<T>> implements io.reactivex.disposables.Disposable, java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver
super_class: io.reactivex.internal.observers.QueueDrainObserver
{
final long timespan;
descriptor: J
flags: (0x0010) ACC_FINAL
final long timeskip;
descriptor: J
flags: (0x0010) ACC_FINAL
final java.util.concurrent.TimeUnit unit;
descriptor: Ljava/util/concurrent/TimeUnit;
flags: (0x0010) ACC_FINAL
final io.reactivex.Scheduler$Worker worker;
descriptor: Lio/reactivex/Scheduler$Worker;
flags: (0x0010) ACC_FINAL
final int bufferSize;
descriptor: I
flags: (0x0010) ACC_FINAL
final java.util.List<io.reactivex.subjects.UnicastSubject<T>> windows;
descriptor: Ljava/util/List;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/List<Lio/reactivex/subjects/UnicastSubject<TT;>;>;
io.reactivex.disposables.Disposable upstream;
descriptor: Lio/reactivex/disposables/Disposable;
flags: (0x0000)
volatile boolean terminated;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
void <init>(io.reactivex.Observer<? super io.reactivex.Observable<T>>, long, long, java.util.concurrent.TimeUnit, io.reactivex.Scheduler$Worker, );
descriptor: (Lio/reactivex/Observer;JJLjava/util/concurrent/TimeUnit;Lio/reactivex/Scheduler$Worker;I)V
flags: (0x0000)
Code:
stack=4, locals=9, args_size=7
start local 0 start local 1 start local 2 start local 4 start local 6 start local 7 start local 8 0: aload 0
aload 1
new io.reactivex.internal.queue.MpscLinkedQueue
dup
invokespecial io.reactivex.internal.queue.MpscLinkedQueue.<init>:()V
invokespecial io.reactivex.internal.observers.QueueDrainObserver.<init>:(Lio/reactivex/Observer;Lio/reactivex/internal/fuseable/SimplePlainQueue;)V
1: aload 0
lload 2
putfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.timespan:J
2: aload 0
lload 4
putfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.timeskip:J
3: aload 0
aload 6
putfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.unit:Ljava/util/concurrent/TimeUnit;
4: aload 0
aload 7
putfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.worker:Lio/reactivex/Scheduler$Worker;
5: aload 0
iload 8
putfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.bufferSize:I
6: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.windows:Ljava/util/List;
7: return
end local 8 end local 7 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/reactivex/internal/operators/observable/ObservableWindowTimed$WindowSkipObserver<TT;>;
0 8 1 actual Lio/reactivex/Observer<-Lio/reactivex/Observable<TT;>;>;
0 8 2 timespan J
0 8 4 timeskip J
0 8 6 unit Ljava/util/concurrent/TimeUnit;
0 8 7 worker Lio/reactivex/Scheduler$Worker;
0 8 8 bufferSize I
Signature: (Lio/reactivex/Observer<-Lio/reactivex/Observable<TT;>;>;JJLjava/util/concurrent/TimeUnit;Lio/reactivex/Scheduler$Worker;I)V
MethodParameters:
Name Flags
actual
timespan
timeskip
unit
worker
bufferSize
public void onSubscribe(io.reactivex.disposables.Disposable);
descriptor: (Lio/reactivex/disposables/Disposable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.upstream:Lio/reactivex/disposables/Disposable;
aload 1
invokestatic io.reactivex.internal.disposables.DisposableHelper.validate:(Lio/reactivex/disposables/Disposable;Lio/reactivex/disposables/Disposable;)Z
ifeq 10
1: aload 0
aload 1
putfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.upstream:Lio/reactivex/disposables/Disposable;
2: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.downstream:Lio/reactivex/Observer;
aload 0
invokeinterface io.reactivex.Observer.onSubscribe:(Lio/reactivex/disposables/Disposable;)V
3: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.cancelled:Z
ifeq 5
4: return
5: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.bufferSize:I
invokestatic io.reactivex.subjects.UnicastSubject.create:(I)Lio/reactivex/subjects/UnicastSubject;
astore 2
start local 2 6: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.windows:Ljava/util/List;
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.downstream:Lio/reactivex/Observer;
aload 2
invokeinterface io.reactivex.Observer.onNext:(Ljava/lang/Object;)V
8: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.worker:Lio/reactivex/Scheduler$Worker;
new io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$CompletionTask
dup
aload 0
aload 2
invokespecial io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$CompletionTask.<init>:(Lio/reactivex/internal/operators/observable/ObservableWindowTimed$WindowSkipObserver;Lio/reactivex/subjects/UnicastSubject;)V
aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.timespan:J
aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.unit:Ljava/util/concurrent/TimeUnit;
invokevirtual io.reactivex.Scheduler$Worker.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
pop
9: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.worker:Lio/reactivex/Scheduler$Worker;
aload 0
aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.timeskip:J
aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.timeskip:J
aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.unit:Ljava/util/concurrent/TimeUnit;
invokevirtual io.reactivex.Scheduler$Worker.schedulePeriodically:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
pop
end local 2 10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/reactivex/internal/operators/observable/ObservableWindowTimed$WindowSkipObserver<TT;>;
0 11 1 d Lio/reactivex/disposables/Disposable;
6 10 2 w Lio/reactivex/subjects/UnicastSubject<TT;>;
MethodParameters:
Name Flags
d
public void onNext();
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.fastEnter:()Z
ifeq 7
1: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.windows:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver java.lang.Object top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.reactivex.subjects.UnicastSubject
astore 2
start local 2 3: aload 2
aload 1
invokevirtual io.reactivex.subjects.UnicastSubject.onNext:(Ljava/lang/Object;)V
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 0
iconst_m1
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.leave:(I)I
ifne 10
6: return
7: StackMap locals: io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver java.lang.Object
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
aload 1
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.offer:(Ljava/lang/Object;)Z
pop
8: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.enter:()Z
ifne 10
9: return
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.drainLoop:()V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/reactivex/internal/operators/observable/ObservableWindowTimed$WindowSkipObserver<TT;>;
0 12 1 t TT;
3 4 2 w Lio/reactivex/subjects/UnicastSubject<TT;>;
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
putfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.error:Ljava/lang/Throwable;
1: aload 0
iconst_1
putfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.done:Z
2: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.enter:()Z
ifeq 4
3: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.drainLoop:()V
4: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.downstream:Lio/reactivex/Observer;
aload 1
invokeinterface io.reactivex.Observer.onError:(Ljava/lang/Throwable;)V
5: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.disposeWorker:()V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/reactivex/internal/operators/observable/ObservableWindowTimed$WindowSkipObserver<TT;>;
0 7 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
iconst_1
putfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.done:Z
1: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.enter:()Z
ifeq 3
2: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.drainLoop:()V
3: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.downstream:Lio/reactivex/Observer;
invokeinterface io.reactivex.Observer.onComplete:()V
4: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.disposeWorker:()V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/reactivex/internal/operators/observable/ObservableWindowTimed$WindowSkipObserver<TT;>;
public void dispose();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.cancelled:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/reactivex/internal/operators/observable/ObservableWindowTimed$WindowSkipObserver<TT;>;
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.ObservableWindowTimed$WindowSkipObserver.cancelled:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/internal/operators/observable/ObservableWindowTimed$WindowSkipObserver<TT;>;
void disposeWorker();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.worker:Lio/reactivex/Scheduler$Worker;
invokevirtual io.reactivex.Scheduler$Worker.dispose:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/reactivex/internal/operators/observable/ObservableWindowTimed$WindowSkipObserver<TT;>;
void complete(io.reactivex.subjects.UnicastSubject<T>);
descriptor: (Lio/reactivex/subjects/UnicastSubject;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
new io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$SubjectWork
dup
aload 1
iconst_0
invokespecial io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$SubjectWork.<init>:(Lio/reactivex/subjects/UnicastSubject;Z)V
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.offer:(Ljava/lang/Object;)Z
pop
1: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.enter:()Z
ifeq 3
2: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.drainLoop:()V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/reactivex/internal/operators/observable/ObservableWindowTimed$WindowSkipObserver<TT;>;
0 4 1 w Lio/reactivex/subjects/UnicastSubject<TT;>;
Signature: (Lio/reactivex/subjects/UnicastSubject<TT;>;)V
MethodParameters:
Name Flags
w
void drainLoop();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=12, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
checkcast io.reactivex.internal.queue.MpscLinkedQueue
astore 1
start local 1 1: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.downstream:Lio/reactivex/Observer;
astore 2
start local 2 2: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.windows:Ljava/util/List;
astore 3
start local 3 3: iconst_1
istore 4
start local 4 4: StackMap locals: io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver io.reactivex.internal.queue.MpscLinkedQueue io.reactivex.Observer java.util.List int
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.terminated:Z
ifeq 10
5: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.upstream:Lio/reactivex/disposables/Disposable;
invokeinterface io.reactivex.disposables.Disposable.dispose:()V
6: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.disposeWorker:()V
7: aload 1
invokevirtual io.reactivex.internal.queue.MpscLinkedQueue.clear:()V
8: aload 3
invokeinterface java.util.List.clear:()V
9: return
10: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.done:Z
istore 5
start local 5 11: aload 1
invokevirtual io.reactivex.internal.queue.MpscLinkedQueue.poll:()Ljava/lang/Object;
astore 6
start local 6 12: aload 6
ifnonnull 13
iconst_1
goto 14
StackMap locals: int java.lang.Object
StackMap stack:
13: iconst_0
StackMap locals:
StackMap stack: int
14: istore 7
start local 7 15: aload 6
instanceof io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$SubjectWork
istore 8
start local 8 16: iload 5
ifeq 32
iload 7
ifne 17
iload 8
ifeq 32
17: StackMap locals: int int
StackMap stack:
aload 1
invokevirtual io.reactivex.internal.queue.MpscLinkedQueue.clear:()V
18: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.error:Ljava/lang/Throwable;
astore 9
start local 9 19: aload 9
ifnull 25
20: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 11
goto 23
StackMap locals: io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver io.reactivex.internal.queue.MpscLinkedQueue io.reactivex.Observer java.util.List int int java.lang.Object int int java.lang.Throwable top java.util.Iterator
StackMap stack:
21: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.reactivex.subjects.UnicastSubject
astore 10
start local 10 22: aload 10
aload 9
invokevirtual io.reactivex.subjects.UnicastSubject.onError:(Ljava/lang/Throwable;)V
end local 10 23: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
24: goto 29
25: StackMap locals: io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver io.reactivex.internal.queue.MpscLinkedQueue io.reactivex.Observer java.util.List int int java.lang.Object int int java.lang.Throwable
StackMap stack:
aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 11
goto 28
StackMap locals: io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver io.reactivex.internal.queue.MpscLinkedQueue io.reactivex.Observer java.util.List int int java.lang.Object int int java.lang.Throwable top java.util.Iterator
StackMap stack:
26: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.reactivex.subjects.UnicastSubject
astore 10
start local 10 27: aload 10
invokevirtual io.reactivex.subjects.UnicastSubject.onComplete:()V
end local 10 28: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 26
29: StackMap locals: io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver io.reactivex.internal.queue.MpscLinkedQueue io.reactivex.Observer java.util.List int int java.lang.Object int int java.lang.Throwable
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.disposeWorker:()V
30: aload 3
invokeinterface java.util.List.clear:()V
31: return
end local 9 32: StackMap locals:
StackMap stack:
iload 7
ifeq 34
33: goto 54
34: StackMap locals:
StackMap stack:
iload 8
ifeq 49
35: aload 6
checkcast io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$SubjectWork
astore 9
start local 9 36: aload 9
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$SubjectWork.open:Z
ifeq 44
37: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.cancelled:Z
ifeq 39
38: goto 4
39: StackMap locals: io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$SubjectWork
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.bufferSize:I
invokestatic io.reactivex.subjects.UnicastSubject.create:(I)Lio/reactivex/subjects/UnicastSubject;
astore 10
start local 10 40: aload 3
aload 10
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
41: aload 2
aload 10
invokeinterface io.reactivex.Observer.onNext:(Ljava/lang/Object;)V
42: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.worker:Lio/reactivex/Scheduler$Worker;
new io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$CompletionTask
dup
aload 0
aload 10
invokespecial io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$CompletionTask.<init>:(Lio/reactivex/internal/operators/observable/ObservableWindowTimed$WindowSkipObserver;Lio/reactivex/subjects/UnicastSubject;)V
aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.timespan:J
aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.unit:Ljava/util/concurrent/TimeUnit;
invokevirtual io.reactivex.Scheduler$Worker.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
pop
end local 10 43: goto 4
44: StackMap locals:
StackMap stack:
aload 3
aload 9
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$SubjectWork.w:Lio/reactivex/subjects/UnicastSubject;
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
45: aload 9
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$SubjectWork.w:Lio/reactivex/subjects/UnicastSubject;
invokevirtual io.reactivex.subjects.UnicastSubject.onComplete:()V
46: aload 3
invokeinterface java.util.List.isEmpty:()Z
ifeq 4
aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.cancelled:Z
ifeq 4
47: aload 0
iconst_1
putfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.terminated:Z
end local 9 48: goto 4
49: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 52
StackMap locals: io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver io.reactivex.internal.queue.MpscLinkedQueue io.reactivex.Observer java.util.List int int java.lang.Object int int top java.util.Iterator
StackMap stack:
50: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.reactivex.subjects.UnicastSubject
astore 9
start local 9 51: aload 9
aload 6
invokevirtual io.reactivex.subjects.UnicastSubject.onNext:(Ljava/lang/Object;)V
end local 9 52: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 50
end local 8 end local 7 end local 6 end local 5 53: goto 4
54: StackMap locals: io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver io.reactivex.internal.queue.MpscLinkedQueue io.reactivex.Observer java.util.List int
StackMap stack:
aload 0
iload 4
ineg
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.leave:(I)I
istore 4
55: iload 4
ifne 4
56: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 57 0 this Lio/reactivex/internal/operators/observable/ObservableWindowTimed$WindowSkipObserver<TT;>;
1 57 1 q Lio/reactivex/internal/queue/MpscLinkedQueue<Ljava/lang/Object;>;
2 57 2 a Lio/reactivex/Observer<-Lio/reactivex/Observable<TT;>;>;
3 57 3 ws Ljava/util/List<Lio/reactivex/subjects/UnicastSubject<TT;>;>;
4 57 4 missed I
11 53 5 d Z
12 53 6 v Ljava/lang/Object;
15 53 7 empty Z
16 53 8 sw Z
19 32 9 e Ljava/lang/Throwable;
22 23 10 w Lio/reactivex/subjects/UnicastSubject<TT;>;
27 28 10 w Lio/reactivex/subjects/UnicastSubject<TT;>;
36 48 9 work Lio/reactivex/internal/operators/observable/ObservableWindowTimed$WindowSkipObserver$SubjectWork<TT;>;
40 43 10 w Lio/reactivex/subjects/UnicastSubject<TT;>;
51 52 9 w Lio/reactivex/subjects/UnicastSubject<TT;>;
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.bufferSize:I
invokestatic io.reactivex.subjects.UnicastSubject.create:(I)Lio/reactivex/subjects/UnicastSubject;
astore 1
start local 1 1: new io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$SubjectWork
dup
aload 1
iconst_1
invokespecial io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$SubjectWork.<init>:(Lio/reactivex/subjects/UnicastSubject;Z)V
astore 2
start local 2 2: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.cancelled:Z
ifne 4
3: aload 0
getfield io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
aload 2
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.offer:(Ljava/lang/Object;)Z
pop
4: StackMap locals: io.reactivex.subjects.UnicastSubject io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$SubjectWork
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.enter:()Z
ifeq 6
5: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver.drainLoop:()V
6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/reactivex/internal/operators/observable/ObservableWindowTimed$WindowSkipObserver<TT;>;
1 7 1 w Lio/reactivex/subjects/UnicastSubject<TT;>;
2 7 2 sw Lio/reactivex/internal/operators/observable/ObservableWindowTimed$WindowSkipObserver$SubjectWork<TT;>;
}
Signature: <T:Ljava/lang/Object;>Lio/reactivex/internal/observers/QueueDrainObserver<TT;Ljava/lang/Object;Lio/reactivex/Observable<TT;>;>;Lio/reactivex/disposables/Disposable;Ljava/lang/Runnable;
SourceFile: "ObservableWindowTimed.java"
NestHost: io.reactivex.internal.operators.observable.ObservableWindowTimed
InnerClasses:
public abstract Worker = io.reactivex.Scheduler$Worker of io.reactivex.Scheduler
final WindowSkipObserver = io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver of io.reactivex.internal.operators.observable.ObservableWindowTimed
final CompletionTask = io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$CompletionTask of io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver
final SubjectWork = io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver$SubjectWork of io.reactivex.internal.operators.observable.ObservableWindowTimed$WindowSkipObserver