final class reactor.core.publisher.FluxWindow$WindowOverlapSubscriber<T> extends java.util.ArrayDeque<reactor.core.publisher.Sinks$Many<T>> implements reactor.core.Disposable, reactor.core.publisher.InnerOperator<T, reactor.core.publisher.Flux<T>>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: reactor.core.publisher.FluxWindow$WindowOverlapSubscriber
super_class: java.util.ArrayDeque
{
final reactor.core.CoreSubscriber<? super reactor.core.publisher.Flux<T>> actual;
descriptor: Lreactor/core/CoreSubscriber;
flags: (0x0010) ACC_FINAL
Signature: Lreactor/core/CoreSubscriber<-Lreactor/core/publisher/Flux<TT;>;>;
final java.util.function.Supplier<? extends java.util.Queue<T>> processorQueueSupplier;
descriptor: Ljava/util/function/Supplier;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/function/Supplier<+Ljava/util/Queue<TT;>;>;
final java.util.Queue<reactor.core.publisher.Sinks$Many<T>> queue;
descriptor: Ljava/util/Queue;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Queue<Lreactor/core/publisher/Sinks$Many<TT;>;>;
final int size;
descriptor: I
flags: (0x0010) ACC_FINAL
final int skip;
descriptor: I
flags: (0x0010) ACC_FINAL
volatile int cancelled;
descriptor: I
flags: (0x0040) ACC_VOLATILE
static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<reactor.core.publisher.FluxWindow$WindowOverlapSubscriber> CANCELLED;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber;>;
volatile int windowCount;
descriptor: I
flags: (0x0040) ACC_VOLATILE
static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<reactor.core.publisher.FluxWindow$WindowOverlapSubscriber> WINDOW_COUNT;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber;>;
volatile int firstRequest;
descriptor: I
flags: (0x0040) ACC_VOLATILE
static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<reactor.core.publisher.FluxWindow$WindowOverlapSubscriber> FIRST_REQUEST;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber;>;
volatile long requested;
descriptor: J
flags: (0x0040) ACC_VOLATILE
static final java.util.concurrent.atomic.AtomicLongFieldUpdater<reactor.core.publisher.FluxWindow$WindowOverlapSubscriber> REQUESTED;
descriptor: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater<Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber;>;
volatile int wip;
descriptor: I
flags: (0x0040) ACC_VOLATILE
static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<reactor.core.publisher.FluxWindow$WindowOverlapSubscriber> WIP;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber;>;
int index;
descriptor: I
flags: (0x0000)
int produced;
descriptor: I
flags: (0x0000)
org.reactivestreams.Subscription s;
descriptor: Lorg/reactivestreams/Subscription;
flags: (0x0000)
volatile boolean done;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
java.lang.Throwable error;
descriptor: Ljava/lang/Throwable;
flags: (0x0000)
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber;
1: ldc "cancelled"
2: invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
3: putstatic reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.CANCELLED:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
4: ldc Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber;
5: ldc "windowCount"
6: invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
7: putstatic reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.WINDOW_COUNT:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
8: ldc Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber;
9: ldc "firstRequest"
10: invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
11: putstatic reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.FIRST_REQUEST:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
12: ldc Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber;
13: ldc "requested"
14: invokestatic java.util.concurrent.atomic.AtomicLongFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
15: putstatic reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.REQUESTED:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
16: ldc Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber;
ldc "wip"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
17: putstatic reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.WIP:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
18: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(reactor.core.CoreSubscriber<? super reactor.core.publisher.Flux<T>>, int, int, java.util.function.Supplier<? extends java.util.Queue<T>>, java.util.Queue<reactor.core.publisher.Sinks$Many<T>>);
descriptor: (Lreactor/core/CoreSubscriber;IILjava/util/function/Supplier;Ljava/util/Queue;)V
flags: (0x0000)
Code:
stack=3, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.util.ArrayDeque.<init>:()V
1: aload 0
aload 1
putfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.actual:Lreactor/core/CoreSubscriber;
2: aload 0
iload 2
putfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.size:I
3: aload 0
iload 3
putfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.skip:I
4: aload 0
aload 4
putfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.processorQueueSupplier:Ljava/util/function/Supplier;
5: getstatic reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.WINDOW_COUNT:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.lazySet:(Ljava/lang/Object;I)V
6: aload 0
aload 5
putfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.queue:Ljava/util/Queue;
7: 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 8 0 this Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber<TT;>;
0 8 1 actual Lreactor/core/CoreSubscriber<-Lreactor/core/publisher/Flux<TT;>;>;
0 8 2 size I
0 8 3 skip I
0 8 4 processorQueueSupplier Ljava/util/function/Supplier<+Ljava/util/Queue<TT;>;>;
0 8 5 overflowQueue Ljava/util/Queue<Lreactor/core/publisher/Sinks$Many<TT;>;>;
Signature: (Lreactor/core/CoreSubscriber<-Lreactor/core/publisher/Flux<TT;>;>;IILjava/util/function/Supplier<+Ljava/util/Queue<TT;>;>;Ljava/util/Queue<Lreactor/core/publisher/Sinks$Many<TT;>;>;)V
MethodParameters:
Name Flags
actual
size
skip
processorQueueSupplier
overflowQueue
public void onSubscribe(org.reactivestreams.Subscription);
descriptor: (Lorg/reactivestreams/Subscription;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.s:Lorg/reactivestreams/Subscription;
aload 1
invokestatic reactor.core.publisher.Operators.validate:(Lorg/reactivestreams/Subscription;Lorg/reactivestreams/Subscription;)Z
ifeq 3
1: aload 0
aload 1
putfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.s:Lorg/reactivestreams/Subscription;
2: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.actual:Lreactor/core/CoreSubscriber;
aload 0
invokeinterface reactor.core.CoreSubscriber.onSubscribe:(Lorg/reactivestreams/Subscription;)V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber<TT;>;
0 4 1 s Lorg/reactivestreams/Subscription;
MethodParameters:
Name Flags
s
public void onNext();
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.done:Z
ifeq 3
1: aload 1
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.actual:Lreactor/core/CoreSubscriber;
invokeinterface reactor.core.CoreSubscriber.currentContext:()Lreactor/util/context/Context;
invokestatic reactor.core.publisher.Operators.onNextDropped:(Ljava/lang/Object;Lreactor/util/context/Context;)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.index:I
istore 2
start local 2 4: iload 2
ifne 11
5: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.cancelled:I
ifne 11
6: getstatic reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.WINDOW_COUNT:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndIncrement:(Ljava/lang/Object;)I
pop
7: invokestatic reactor.core.publisher.Sinks.unsafe:()Lreactor/core/publisher/Sinks$RootSpec;
invokeinterface reactor.core.publisher.Sinks$RootSpec.many:()Lreactor/core/publisher/Sinks$ManySpec;
invokeinterface reactor.core.publisher.Sinks$ManySpec.unicast:()Lreactor/core/publisher/Sinks$UnicastSpec;
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.processorQueueSupplier:Ljava/util/function/Supplier;
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
checkcast java.util.Queue
aload 0
invokeinterface reactor.core.publisher.Sinks$UnicastSpec.onBackpressureBuffer:(Ljava/util/Queue;Lreactor/core/Disposable;)Lreactor/core/publisher/Sinks$Many;
astore 3
start local 3 8: aload 0
aload 3
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.offer:(Ljava/lang/Object;)Z
pop
9: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.queue:Ljava/util/Queue;
aload 3
invokeinterface java.util.Queue.offer:(Ljava/lang/Object;)Z
pop
10: aload 0
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.drain:()V
end local 3 11: StackMap locals: int
StackMap stack:
iinc 2 1
12: aload 0
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.iterator:()Ljava/util/Iterator;
astore 4
goto 15
StackMap locals: reactor.core.publisher.FluxWindow$WindowOverlapSubscriber java.lang.Object int top java.util.Iterator
StackMap stack:
13: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast reactor.core.publisher.Sinks$Many
astore 3
start local 3 14: aload 3
aload 1
getstatic reactor.core.publisher.Sinks$EmitFailureHandler.FAIL_FAST:Lreactor/core/publisher/Sinks$EmitFailureHandler;
invokeinterface reactor.core.publisher.Sinks$Many.emitNext:(Ljava/lang/Object;Lreactor/core/publisher/Sinks$EmitFailureHandler;)V
end local 3 15: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
16: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.produced:I
iconst_1
iadd
istore 3
start local 3 17: iload 3
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.size:I
if_icmpne 23
18: aload 0
iload 3
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.skip:I
isub
putfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.produced:I
19: aload 0
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.poll:()Ljava/lang/Object;
checkcast reactor.core.publisher.Sinks$Many
astore 4
start local 4 20: aload 4
ifnull 24
21: aload 4
getstatic reactor.core.publisher.Sinks$EmitFailureHandler.FAIL_FAST:Lreactor/core/publisher/Sinks$EmitFailureHandler;
invokeinterface reactor.core.publisher.Sinks$Many.emitComplete:(Lreactor/core/publisher/Sinks$EmitFailureHandler;)V
end local 4 22: goto 24
23: StackMap locals: reactor.core.publisher.FluxWindow$WindowOverlapSubscriber java.lang.Object int int
StackMap stack:
aload 0
iload 3
putfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.produced:I
24: StackMap locals:
StackMap stack:
iload 2
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.skip:I
if_icmpne 27
25: aload 0
iconst_0
putfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.index:I
26: goto 28
27: StackMap locals:
StackMap stack:
aload 0
iload 2
putfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.index:I
28: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber<TT;>;
0 29 1 t TT;
4 29 2 i I
8 11 3 w Lreactor/core/publisher/Sinks$Many<TT;>;
14 15 3 w Lreactor/core/publisher/Sinks$Many<TT;>;
17 29 3 p I
20 22 4 w Lreactor/core/publisher/Sinks$Many<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=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.done:Z
ifeq 3
1: aload 1
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.actual:Lreactor/core/CoreSubscriber;
invokeinterface reactor.core.CoreSubscriber.currentContext:()Lreactor/util/context/Context;
invokestatic reactor.core.publisher.Operators.onErrorDropped:(Ljava/lang/Throwable;Lreactor/util/context/Context;)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.done:Z
4: aload 0
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.iterator:()Ljava/util/Iterator;
astore 3
goto 7
StackMap locals: reactor.core.publisher.FluxWindow$WindowOverlapSubscriber java.lang.Throwable top java.util.Iterator
StackMap stack:
5: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast reactor.core.publisher.Sinks$Many
astore 2
start local 2 6: aload 2
aload 1
getstatic reactor.core.publisher.Sinks$EmitFailureHandler.FAIL_FAST:Lreactor/core/publisher/Sinks$EmitFailureHandler;
invokeinterface reactor.core.publisher.Sinks$Many.emitError:(Ljava/lang/Throwable;Lreactor/core/publisher/Sinks$EmitFailureHandler;)V
end local 2 7: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: aload 0
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.clear:()V
9: aload 0
aload 1
putfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.error:Ljava/lang/Throwable;
10: aload 0
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.drain:()V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber<TT;>;
0 12 1 t Ljava/lang/Throwable;
6 7 2 w Lreactor/core/publisher/Sinks$Many<TT;>;
MethodParameters:
Name Flags
t
public void onComplete();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.done:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.done:Z
3: aload 0
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.iterator:()Ljava/util/Iterator;
astore 2
goto 6
StackMap locals: reactor.core.publisher.FluxWindow$WindowOverlapSubscriber top java.util.Iterator
StackMap stack:
4: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast reactor.core.publisher.Sinks$Many
astore 1
start local 1 5: aload 1
getstatic reactor.core.publisher.Sinks$EmitFailureHandler.FAIL_FAST:Lreactor/core/publisher/Sinks$EmitFailureHandler;
invokeinterface reactor.core.publisher.Sinks$Many.emitComplete:(Lreactor/core/publisher/Sinks$EmitFailureHandler;)V
end local 1 6: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: aload 0
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.clear:()V
8: aload 0
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.drain:()V
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber<TT;>;
5 6 1 w Lreactor/core/publisher/Sinks$Many<TT;>;
void drain();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=11, args_size=1
start local 0 0: getstatic reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.WIP:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndIncrement:(Ljava/lang/Object;)I
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.actual:Lreactor/core/CoreSubscriber;
astore 1
start local 1 3: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.queue:Ljava/util/Queue;
astore 2
start local 2 4: iconst_1
istore 3
start local 3 5: StackMap locals: org.reactivestreams.Subscriber java.util.Queue int
StackMap stack:
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.requested:J
lstore 4
start local 4 6: lconst_0
lstore 6
start local 6 7: goto 19
8: StackMap locals: long long
StackMap stack:
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.done:Z
istore 8
start local 8 9: aload 2
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast reactor.core.publisher.Sinks$Many
astore 9
start local 9 10: aload 9
ifnonnull 11
iconst_1
goto 12
StackMap locals: int reactor.core.publisher.Sinks$Many
StackMap stack:
11: iconst_0
StackMap locals:
StackMap stack: int
12: istore 10
start local 10 13: aload 0
iload 8
iload 10
aload 1
aload 2
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.checkTerminated:(ZZLorg/reactivestreams/Subscriber;Ljava/util/Queue;)Z
ifeq 15
14: return
15: StackMap locals: int
StackMap stack:
iload 10
ifeq 17
16: goto 20
17: StackMap locals:
StackMap stack:
aload 1
aload 9
invokeinterface reactor.core.publisher.Sinks$Many.asFlux:()Lreactor/core/publisher/Flux;
invokeinterface org.reactivestreams.Subscriber.onNext:(Ljava/lang/Object;)V
18: lload 6
lconst_1
ladd
lstore 6
end local 10 end local 9 end local 8 19: StackMap locals:
StackMap stack:
lload 6
lload 4
lcmp
ifne 8
20: StackMap locals:
StackMap stack:
lload 6
lload 4
lcmp
ifne 23
21: aload 0
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.done:Z
aload 2
invokeinterface java.util.Queue.isEmpty:()Z
aload 1
aload 2
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.checkTerminated:(ZZLorg/reactivestreams/Subscriber;Ljava/util/Queue;)Z
ifeq 23
22: return
23: StackMap locals:
StackMap stack:
lload 6
lconst_0
lcmp
ifeq 25
lload 4
ldc 9223372036854775807
lcmp
ifeq 25
24: getstatic reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.REQUESTED:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
lload 6
lneg
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.addAndGet:(Ljava/lang/Object;J)J
pop2
25: StackMap locals:
StackMap stack:
getstatic reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.WIP:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 3
ineg
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.addAndGet:(Ljava/lang/Object;I)I
istore 3
26: iload 3
ifne 5
end local 6 end local 4 27: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber<TT;>;
3 28 1 a Lorg/reactivestreams/Subscriber<-Lreactor/core/publisher/Flux<TT;>;>;
4 28 2 q Ljava/util/Queue<Lreactor/core/publisher/Sinks$Many<TT;>;>;
5 28 3 missed I
6 27 4 r J
7 27 6 e J
9 19 8 d Z
10 19 9 t Lreactor/core/publisher/Sinks$Many<TT;>;
13 19 10 empty Z
boolean checkTerminated(boolean, boolean, org.reactivestreams.Subscriber<?>, java.util.Queue<?>);
descriptor: (ZZLorg/reactivestreams/Subscriber;Ljava/util/Queue;)Z
flags: (0x0000)
Code:
stack=2, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.cancelled:I
iconst_1
if_icmpne 3
1: aload 4
invokeinterface java.util.Queue.clear:()V
2: iconst_1
ireturn
3: StackMap locals:
StackMap stack:
iload 1
ifeq 12
4: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.error:Ljava/lang/Throwable;
astore 5
start local 5 5: aload 5
ifnull 9
6: aload 4
invokeinterface java.util.Queue.clear:()V
7: aload 3
aload 5
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
8: iconst_1
ireturn
9: StackMap locals: java.lang.Throwable
StackMap stack:
iload 2
ifeq 12
10: aload 3
invokeinterface org.reactivestreams.Subscriber.onComplete:()V
11: iconst_1
ireturn
end local 5 12: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber<TT;>;
0 13 1 d Z
0 13 2 empty Z
0 13 3 a Lorg/reactivestreams/Subscriber<*>;
0 13 4 q Ljava/util/Queue<*>;
5 12 5 e Ljava/lang/Throwable;
Signature: (ZZLorg/reactivestreams/Subscriber<*>;Ljava/util/Queue<*>;)Z
MethodParameters:
Name Flags
d
empty
a
q
public void request(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: lload 1
invokestatic reactor.core.publisher.Operators.validate:(J)Z
ifeq 10
1: getstatic reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.REQUESTED:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
lload 1
invokestatic reactor.core.publisher.Operators.addCap:(Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;Ljava/lang/Object;J)J
pop2
2: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.firstRequest:I
ifne 7
getstatic reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.FIRST_REQUEST:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 7
3: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.skip:I
i2l
lload 1
lconst_1
lsub
invokestatic reactor.core.publisher.Operators.multiplyCap:(JJ)J
lstore 3
start local 3 4: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.size:I
i2l
lload 3
invokestatic reactor.core.publisher.Operators.addCap:(JJ)J
lstore 5
start local 5 5: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.s:Lorg/reactivestreams/Subscription;
lload 5
invokeinterface org.reactivestreams.Subscription.request:(J)V
end local 5 end local 3 6: goto 9
7: StackMap locals:
StackMap stack:
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.skip:I
i2l
lload 1
invokestatic reactor.core.publisher.Operators.multiplyCap:(JJ)J
lstore 3
start local 3 8: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.s:Lorg/reactivestreams/Subscription;
lload 3
invokeinterface org.reactivestreams.Subscription.request:(J)V
end local 3 9: StackMap locals:
StackMap stack:
aload 0
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.drain:()V
10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber<TT;>;
0 11 1 n J
4 6 3 u J
5 6 5 v J
8 9 3 u J
MethodParameters:
Name Flags
n
public void cancel();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.CANCELLED:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 2
1: aload 0
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.dispose:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber<TT;>;
public void dispose();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.WINDOW_COUNT:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.decrementAndGet:(Ljava/lang/Object;)I
ifne 2
1: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.s:Lorg/reactivestreams/Subscription;
invokeinterface org.reactivestreams.Subscription.cancel:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber<TT;>;
public reactor.core.CoreSubscriber<? super reactor.core.publisher.Flux<T>> actual();
descriptor: ()Lreactor/core/CoreSubscriber;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.actual:Lreactor/core/CoreSubscriber;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber<TT;>;
Signature: ()Lreactor/core/CoreSubscriber<-Lreactor/core/publisher/Flux<TT;>;>;
public boolean isDisposed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.cancelled:I
iconst_1
if_icmpeq 1
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.done:Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber<TT;>;
public java.lang.Object scanUnsafe(reactor.core.Scannable$Attr);
descriptor: (Lreactor/core/Scannable$Attr;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
getstatic reactor.core.Scannable$Attr.PARENT:Lreactor/core/Scannable$Attr;
if_acmpne 1
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.s:Lorg/reactivestreams/Subscription;
areturn
1: StackMap locals:
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.CANCELLED:Lreactor/core/Scannable$Attr;
if_acmpne 3
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.cancelled:I
iconst_1
if_icmpne 2
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
StackMap locals:
StackMap stack:
2: iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
3: StackMap locals:
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.CAPACITY:Lreactor/core/Scannable$Attr;
if_acmpne 4
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.size:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
4: StackMap locals:
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.TERMINATED:Lreactor/core/Scannable$Attr;
if_acmpne 5
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.done:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
5: StackMap locals:
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.LARGE_BUFFERED:Lreactor/core/Scannable$Attr;
if_acmpne 6
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.queue:Ljava/util/Queue;
invokeinterface java.util.Queue.size:()I
i2l
aload 0
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.size:()I
i2l
ladd
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
areturn
6: StackMap locals:
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.BUFFERED:Lreactor/core/Scannable$Attr;
if_acmpne 10
7: aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.queue:Ljava/util/Queue;
invokeinterface java.util.Queue.size:()I
i2l
aload 0
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.size:()I
i2l
ladd
lstore 2
start local 2 8: lload 2
ldc 2147483647
lcmp
ifge 9
lload 2
l2i
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
9: StackMap locals: long
StackMap stack:
ldc -2147483648
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
end local 2 10: StackMap locals:
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.ERROR:Lreactor/core/Scannable$Attr;
if_acmpne 11
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.error:Ljava/lang/Throwable;
areturn
11: StackMap locals:
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.REQUESTED_FROM_DOWNSTREAM:Lreactor/core/Scannable$Attr;
if_acmpne 12
aload 0
getfield reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.requested:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
areturn
12: StackMap locals:
StackMap stack:
aload 1
getstatic reactor.core.Scannable$Attr.RUN_STYLE:Lreactor/core/Scannable$Attr;
if_acmpne 13
getstatic reactor.core.Scannable$Attr$RunStyle.SYNC:Lreactor/core/Scannable$Attr$RunStyle;
areturn
13: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial reactor.core.publisher.InnerOperator.scanUnsafe:(Lreactor/core/Scannable$Attr;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber<TT;>;
0 14 1 key Lreactor/core/Scannable$Attr;
8 10 2 realBuffered J
RuntimeVisibleAnnotations:
reactor.util.annotation.Nullable()
MethodParameters:
Name Flags
key
public java.util.stream.Stream<? extends reactor.core.Scannable> inners();
descriptor: ()Ljava/util/stream/Stream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual reactor.core.publisher.FluxWindow$WindowOverlapSubscriber.toArray:()[Ljava/lang/Object;
invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
1: invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
reactor/core/Scannable.from(Ljava/lang/Object;)Lreactor/core/Scannable; (6 itf)
(Ljava/lang/Object;)Lreactor/core/Scannable;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lreactor/core/publisher/FluxWindow$WindowOverlapSubscriber<TT;>;
Signature: ()Ljava/util/stream/Stream<+Lreactor/core/Scannable;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/util/ArrayDeque<Lreactor/core/publisher/Sinks$Many<TT;>;>;Lreactor/core/Disposable;Lreactor/core/publisher/InnerOperator<TT;Lreactor/core/publisher/Flux<TT;>;>;
SourceFile: "FluxWindow.java"
NestHost: reactor.core.publisher.FluxWindow
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public Attr = reactor.core.Scannable$Attr of reactor.core.Scannable
public final RunStyle = reactor.core.Scannable$Attr$RunStyle of reactor.core.Scannable$Attr
final WindowOverlapSubscriber = reactor.core.publisher.FluxWindow$WindowOverlapSubscriber of reactor.core.publisher.FluxWindow
public abstract EmitFailureHandler = reactor.core.publisher.Sinks$EmitFailureHandler of reactor.core.publisher.Sinks
public abstract Many = reactor.core.publisher.Sinks$Many of reactor.core.publisher.Sinks
public abstract ManySpec = reactor.core.publisher.Sinks$ManySpec of reactor.core.publisher.Sinks
public abstract RootSpec = reactor.core.publisher.Sinks$RootSpec of reactor.core.publisher.Sinks
public abstract UnicastSpec = reactor.core.publisher.Sinks$UnicastSpec of reactor.core.publisher.Sinks