final class io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber<T> extends io.reactivex.internal.subscribers.QueueDrainSubscriber<T, java.lang.Object, io.reactivex.Flowable<T>> implements org.reactivestreams.Subscription, java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber
super_class: io.reactivex.internal.subscribers.QueueDrainSubscriber
{
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.processors.UnicastProcessor<T>> windows;
descriptor: Ljava/util/List;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/List<Lio/reactivex/processors/UnicastProcessor<TT;>;>;
org.reactivestreams.Subscription upstream;
descriptor: Lorg/reactivestreams/Subscription;
flags: (0x0000)
volatile boolean terminated;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
void <init>(org.reactivestreams.Subscriber<? super io.reactivex.Flowable<T>>, long, long, java.util.concurrent.TimeUnit, io.reactivex.Scheduler$Worker, );
descriptor: (Lorg/reactivestreams/Subscriber;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.subscribers.QueueDrainSubscriber.<init>:(Lorg/reactivestreams/Subscriber;Lio/reactivex/internal/fuseable/SimplePlainQueue;)V
1: aload 0
lload 2
putfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.timespan:J
2: aload 0
lload 4
putfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.timeskip:J
3: aload 0
aload 6
putfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.unit:Ljava/util/concurrent/TimeUnit;
4: aload 0
aload 7
putfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.worker:Lio/reactivex/Scheduler$Worker;
5: aload 0
iload 8
putfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.bufferSize:I
6: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.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/flowable/FlowableWindowTimed$WindowSkipSubscriber<TT;>;
0 8 1 actual Lorg/reactivestreams/Subscriber<-Lio/reactivex/Flowable<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: (Lorg/reactivestreams/Subscriber<-Lio/reactivex/Flowable<TT;>;>;JJLjava/util/concurrent/TimeUnit;Lio/reactivex/Scheduler$Worker;I)V
MethodParameters:
Name Flags
actual
timespan
timeskip
unit
worker
bufferSize
public void onSubscribe(org.reactivestreams.Subscription);
descriptor: (Lorg/reactivestreams/Subscription;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.upstream:Lorg/reactivestreams/Subscription;
aload 1
invokestatic io.reactivex.internal.subscriptions.SubscriptionHelper.validate:(Lorg/reactivestreams/Subscription;Lorg/reactivestreams/Subscription;)Z
ifeq 18
1: aload 0
aload 1
putfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.upstream:Lorg/reactivestreams/Subscription;
2: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.downstream:Lorg/reactivestreams/Subscriber;
aload 0
invokeinterface org.reactivestreams.Subscriber.onSubscribe:(Lorg/reactivestreams/Subscription;)V
3: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.cancelled:Z
ifeq 5
4: return
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.requested:()J
lstore 2
start local 2 6: lload 2
lconst_0
lcmp
ifeq 16
7: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.bufferSize:I
invokestatic io.reactivex.processors.UnicastProcessor.create:(I)Lio/reactivex/processors/UnicastProcessor;
astore 4
start local 4 8: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.windows:Ljava/util/List;
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
9: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.downstream:Lorg/reactivestreams/Subscriber;
aload 4
invokeinterface org.reactivestreams.Subscriber.onNext:(Ljava/lang/Object;)V
10: lload 2
ldc 9223372036854775807
lcmp
ifeq 12
11: aload 0
lconst_1
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.produced:(J)J
pop2
12: StackMap locals: long io.reactivex.processors.UnicastProcessor
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.worker:Lio/reactivex/Scheduler$Worker;
new io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber$Completion
dup
aload 0
aload 4
invokespecial io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber$Completion.<init>:(Lio/reactivex/internal/operators/flowable/FlowableWindowTimed$WindowSkipSubscriber;Lio/reactivex/processors/UnicastProcessor;)V
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.timespan:J
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.unit:Ljava/util/concurrent/TimeUnit;
invokevirtual io.reactivex.Scheduler$Worker.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
pop
13: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.worker:Lio/reactivex/Scheduler$Worker;
aload 0
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.timeskip:J
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.timeskip:J
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.unit:Ljava/util/concurrent/TimeUnit;
invokevirtual io.reactivex.Scheduler$Worker.schedulePeriodically:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
pop
14: aload 1
ldc 9223372036854775807
invokeinterface org.reactivestreams.Subscription.request:(J)V
end local 4 15: goto 18
16: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.reactivestreams.Subscription.cancel:()V
17: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.downstream:Lorg/reactivestreams/Subscriber;
new io.reactivex.exceptions.MissingBackpressureException
dup
ldc "Could not emit the first window due to lack of requests"
invokespecial io.reactivex.exceptions.MissingBackpressureException.<init>:(Ljava/lang/String;)V
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
end local 2 18: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lio/reactivex/internal/operators/flowable/FlowableWindowTimed$WindowSkipSubscriber<TT;>;
0 19 1 s Lorg/reactivestreams/Subscription;
6 18 2 r J
8 15 4 w Lio/reactivex/processors/UnicastProcessor<TT;>;
MethodParameters:
Name Flags
s
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.flowable.FlowableWindowTimed$WindowSkipSubscriber.fastEnter:()Z
ifeq 7
1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.windows:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber java.lang.Object top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.reactivex.processors.UnicastProcessor
astore 2
start local 2 3: aload 2
aload 1
invokevirtual io.reactivex.processors.UnicastProcessor.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.flowable.FlowableWindowTimed$WindowSkipSubscriber.leave:(I)I
ifne 10
6: return
7: StackMap locals: io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber java.lang.Object
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.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.flowable.FlowableWindowTimed$WindowSkipSubscriber.enter:()Z
ifne 10
9: return
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.drainLoop:()V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/reactivex/internal/operators/flowable/FlowableWindowTimed$WindowSkipSubscriber<TT;>;
0 12 1 t TT;
3 4 2 w Lio/reactivex/processors/UnicastProcessor<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.flowable.FlowableWindowTimed$WindowSkipSubscriber.error:Ljava/lang/Throwable;
1: aload 0
iconst_1
putfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.done:Z
2: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.enter:()Z
ifeq 4
3: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.drainLoop:()V
4: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.downstream:Lorg/reactivestreams/Subscriber;
aload 1
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
5: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.dispose:()V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/reactivex/internal/operators/flowable/FlowableWindowTimed$WindowSkipSubscriber<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.flowable.FlowableWindowTimed$WindowSkipSubscriber.done:Z
1: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.enter:()Z
ifeq 3
2: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.drainLoop:()V
3: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.downstream:Lorg/reactivestreams/Subscriber;
invokeinterface org.reactivestreams.Subscriber.onComplete:()V
4: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.dispose:()V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/reactivex/internal/operators/flowable/FlowableWindowTimed$WindowSkipSubscriber<TT;>;
public void request(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.requested:(J)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/reactivex/internal/operators/flowable/FlowableWindowTimed$WindowSkipSubscriber<TT;>;
0 2 1 n J
MethodParameters:
Name Flags
n
public void cancel();
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.flowable.FlowableWindowTimed$WindowSkipSubscriber.cancelled:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/reactivex/internal/operators/flowable/FlowableWindowTimed$WindowSkipSubscriber<TT;>;
public void dispose();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.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/flowable/FlowableWindowTimed$WindowSkipSubscriber<TT;>;
void complete(io.reactivex.processors.UnicastProcessor<T>);
descriptor: (Lio/reactivex/processors/UnicastProcessor;)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.flowable.FlowableWindowTimed$WindowSkipSubscriber.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
new io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber$SubjectWork
dup
aload 1
iconst_0
invokespecial io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber$SubjectWork.<init>:(Lio/reactivex/processors/UnicastProcessor;Z)V
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.offer:(Ljava/lang/Object;)Z
pop
1: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.enter:()Z
ifeq 3
2: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.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/flowable/FlowableWindowTimed$WindowSkipSubscriber<TT;>;
0 4 1 w Lio/reactivex/processors/UnicastProcessor<TT;>;
Signature: (Lio/reactivex/processors/UnicastProcessor<TT;>;)V
MethodParameters:
Name Flags
w
void drainLoop();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=13, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
astore 1
start local 1 1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.downstream:Lorg/reactivestreams/Subscriber;
astore 2
start local 2 2: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.windows:Ljava/util/List;
astore 3
start local 3 3: iconst_1
istore 4
start local 4 4: StackMap locals: io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber io.reactivex.internal.fuseable.SimplePlainQueue org.reactivestreams.Subscriber java.util.List int
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.terminated:Z
ifeq 10
5: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.upstream:Lorg/reactivestreams/Subscription;
invokeinterface org.reactivestreams.Subscription.cancel:()V
6: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.dispose:()V
7: aload 1
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.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.flowable.FlowableWindowTimed$WindowSkipSubscriber.done:Z
istore 5
start local 5 11: aload 1
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.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.flowable.FlowableWindowTimed$WindowSkipSubscriber$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
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.clear:()V
18: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.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.flowable.FlowableWindowTimed$WindowSkipSubscriber io.reactivex.internal.fuseable.SimplePlainQueue org.reactivestreams.Subscriber 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.processors.UnicastProcessor
astore 10
start local 10 22: aload 10
aload 9
invokevirtual io.reactivex.processors.UnicastProcessor.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.flowable.FlowableWindowTimed$WindowSkipSubscriber io.reactivex.internal.fuseable.SimplePlainQueue org.reactivestreams.Subscriber 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.flowable.FlowableWindowTimed$WindowSkipSubscriber io.reactivex.internal.fuseable.SimplePlainQueue org.reactivestreams.Subscriber 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.processors.UnicastProcessor
astore 10
start local 10 27: aload 10
invokevirtual io.reactivex.processors.UnicastProcessor.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.flowable.FlowableWindowTimed$WindowSkipSubscriber io.reactivex.internal.fuseable.SimplePlainQueue org.reactivestreams.Subscriber java.util.List int int java.lang.Object int int java.lang.Throwable
StackMap stack:
aload 3
invokeinterface java.util.List.clear:()V
30: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.dispose:()V
31: return
end local 9 32: StackMap locals:
StackMap stack:
iload 7
ifeq 34
33: goto 60
34: StackMap locals:
StackMap stack:
iload 8
ifeq 55
35: aload 6
checkcast io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber$SubjectWork
astore 9
start local 9 36: aload 9
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber$SubjectWork.open:Z
ifeq 50
37: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.cancelled:Z
ifeq 39
38: goto 4
39: StackMap locals: io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber$SubjectWork
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.requested:()J
lstore 10
start local 10 40: lload 10
lconst_0
lcmp
ifeq 48
41: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.bufferSize:I
invokestatic io.reactivex.processors.UnicastProcessor.create:(I)Lio/reactivex/processors/UnicastProcessor;
astore 12
start local 12 42: aload 3
aload 12
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
43: aload 2
aload 12
invokeinterface org.reactivestreams.Subscriber.onNext:(Ljava/lang/Object;)V
44: lload 10
ldc 9223372036854775807
lcmp
ifeq 46
45: aload 0
lconst_1
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.produced:(J)J
pop2
46: StackMap locals: long io.reactivex.processors.UnicastProcessor
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.worker:Lio/reactivex/Scheduler$Worker;
new io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber$Completion
dup
aload 0
aload 12
invokespecial io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber$Completion.<init>:(Lio/reactivex/internal/operators/flowable/FlowableWindowTimed$WindowSkipSubscriber;Lio/reactivex/processors/UnicastProcessor;)V
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.timespan:J
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.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 12 47: goto 4
48: StackMap locals:
StackMap stack:
aload 2
new io.reactivex.exceptions.MissingBackpressureException
dup
ldc "Can't emit window due to lack of requests"
invokespecial io.reactivex.exceptions.MissingBackpressureException.<init>:(Ljava/lang/String;)V
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
end local 10 49: goto 4
50: StackMap locals:
StackMap stack:
aload 3
aload 9
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber$SubjectWork.w:Lio/reactivex/processors/UnicastProcessor;
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
51: aload 9
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber$SubjectWork.w:Lio/reactivex/processors/UnicastProcessor;
invokevirtual io.reactivex.processors.UnicastProcessor.onComplete:()V
52: aload 3
invokeinterface java.util.List.isEmpty:()Z
ifeq 4
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.cancelled:Z
ifeq 4
53: aload 0
iconst_1
putfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.terminated:Z
end local 9 54: goto 4
55: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 58
StackMap locals: io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber io.reactivex.internal.fuseable.SimplePlainQueue org.reactivestreams.Subscriber java.util.List int int java.lang.Object int int top java.util.Iterator
StackMap stack:
56: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.reactivex.processors.UnicastProcessor
astore 9
start local 9 57: aload 9
aload 6
invokevirtual io.reactivex.processors.UnicastProcessor.onNext:(Ljava/lang/Object;)V
end local 9 58: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 56
end local 8 end local 7 end local 6 end local 5 59: goto 4
60: StackMap locals: io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber io.reactivex.internal.fuseable.SimplePlainQueue org.reactivestreams.Subscriber java.util.List int
StackMap stack:
aload 0
iload 4
ineg
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.leave:(I)I
istore 4
61: iload 4
ifne 4
62: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 63 0 this Lio/reactivex/internal/operators/flowable/FlowableWindowTimed$WindowSkipSubscriber<TT;>;
1 63 1 q Lio/reactivex/internal/fuseable/SimplePlainQueue<Ljava/lang/Object;>;
2 63 2 a Lorg/reactivestreams/Subscriber<-Lio/reactivex/Flowable<TT;>;>;
3 63 3 ws Ljava/util/List<Lio/reactivex/processors/UnicastProcessor<TT;>;>;
4 63 4 missed I
11 59 5 d Z
12 59 6 v Ljava/lang/Object;
15 59 7 empty Z
16 59 8 sw Z
19 32 9 e Ljava/lang/Throwable;
22 23 10 w Lio/reactivex/processors/UnicastProcessor<TT;>;
27 28 10 w Lio/reactivex/processors/UnicastProcessor<TT;>;
36 54 9 work Lio/reactivex/internal/operators/flowable/FlowableWindowTimed$WindowSkipSubscriber$SubjectWork<TT;>;
40 49 10 r J
42 47 12 w Lio/reactivex/processors/UnicastProcessor<TT;>;
57 58 9 w Lio/reactivex/processors/UnicastProcessor<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.flowable.FlowableWindowTimed$WindowSkipSubscriber.bufferSize:I
invokestatic io.reactivex.processors.UnicastProcessor.create:(I)Lio/reactivex/processors/UnicastProcessor;
astore 1
start local 1 1: new io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber$SubjectWork
dup
aload 1
iconst_1
invokespecial io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber$SubjectWork.<init>:(Lio/reactivex/processors/UnicastProcessor;Z)V
astore 2
start local 2 2: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.cancelled:Z
ifne 4
3: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.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.processors.UnicastProcessor io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber$SubjectWork
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.enter:()Z
ifeq 6
5: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber.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/flowable/FlowableWindowTimed$WindowSkipSubscriber<TT;>;
1 7 1 w Lio/reactivex/processors/UnicastProcessor<TT;>;
2 7 2 sw Lio/reactivex/internal/operators/flowable/FlowableWindowTimed$WindowSkipSubscriber$SubjectWork<TT;>;
}
Signature: <T:Ljava/lang/Object;>Lio/reactivex/internal/subscribers/QueueDrainSubscriber<TT;Ljava/lang/Object;Lio/reactivex/Flowable<TT;>;>;Lorg/reactivestreams/Subscription;Ljava/lang/Runnable;
SourceFile: "FlowableWindowTimed.java"
NestHost: io.reactivex.internal.operators.flowable.FlowableWindowTimed
InnerClasses:
public abstract Worker = io.reactivex.Scheduler$Worker of io.reactivex.Scheduler
final WindowSkipSubscriber = io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber of io.reactivex.internal.operators.flowable.FlowableWindowTimed
final Completion = io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber$Completion of io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber
final SubjectWork = io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber$SubjectWork of io.reactivex.internal.operators.flowable.FlowableWindowTimed$WindowSkipSubscriber