final class java.util.concurrent.SubmissionPublisher$BufferedSubscription<T> implements java.util.concurrent.Flow$Subscription, java.util.concurrent.ForkJoinPool$ManagedBlocker
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: java.util.concurrent.SubmissionPublisher$BufferedSubscription
super_class: java.lang.Object
{
long timeout;
descriptor: J
flags: (0x0000)
int head;
descriptor: I
flags: (0x0000)
int tail;
descriptor: I
flags: (0x0000)
final int maxCapacity;
descriptor: I
flags: (0x0010) ACC_FINAL
volatile int ctl;
descriptor: I
flags: (0x0040) ACC_VOLATILE
java.lang.Object[] array;
descriptor: [Ljava/lang/Object;
flags: (0x0000)
final java.util.concurrent.Flow$Subscriber<? super T> subscriber;
descriptor: Ljava/util/concurrent/Flow$Subscriber;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/Flow$Subscriber<-TT;>;
final java.util.function.BiConsumer<? super java.util.concurrent.Flow$Subscriber<? super T>, ? super java.lang.Throwable> onNextHandler;
descriptor: Ljava/util/function/BiConsumer;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/function/BiConsumer<-Ljava/util/concurrent/Flow$Subscriber<-TT;>;-Ljava/lang/Throwable;>;
java.util.concurrent.Executor executor;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x0000)
java.lang.Thread waiter;
descriptor: Ljava/lang/Thread;
flags: (0x0000)
java.lang.Throwable pendingError;
descriptor: Ljava/lang/Throwable;
flags: (0x0000)
java.util.concurrent.SubmissionPublisher$BufferedSubscription<T> next;
descriptor: Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription;
flags: (0x0000)
Signature: Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
java.util.concurrent.SubmissionPublisher$BufferedSubscription<T> nextRetry;
descriptor: Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription;
flags: (0x0000)
Signature: Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
volatile long demand;
descriptor: J
flags: (0x0040) ACC_VOLATILE
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.Contended(value = "c")
volatile int waiting;
descriptor: I
flags: (0x0040) ACC_VOLATILE
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.Contended(value = "c")
static final int CLOSED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int ACTIVE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
static final int REQS;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4
static final int ERROR;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 8
static final int COMPLETE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 16
static final int RUN;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 32
static final int OPEN;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 64
static final long INTERRUPTED;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -1
static final java.lang.invoke.VarHandle CTL;
descriptor: Ljava/lang/invoke/VarHandle;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.invoke.VarHandle DEMAND;
descriptor: Ljava/lang/invoke/VarHandle;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.invoke.VarHandle QA;
descriptor: Ljava/lang/invoke/VarHandle;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
astore 0
start local 0 1: aload 0
ldc Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription;
ldc "ctl"
2: getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
3: invokevirtual java.lang.invoke.MethodHandles$Lookup.findVarHandle:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
putstatic java.util.concurrent.SubmissionPublisher$BufferedSubscription.CTL:Ljava/lang/invoke/VarHandle;
4: aload 0
ldc Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription;
ldc "demand"
5: getstatic java.lang.Long.TYPE:Ljava/lang/Class;
6: invokevirtual java.lang.invoke.MethodHandles$Lookup.findVarHandle:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
putstatic java.util.concurrent.SubmissionPublisher$BufferedSubscription.DEMAND:Ljava/lang/invoke/VarHandle;
7: ldc [Ljava/lang/Object;
invokestatic java.lang.invoke.MethodHandles.arrayElementVarHandle:(Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
putstatic java.util.concurrent.SubmissionPublisher$BufferedSubscription.QA:Ljava/lang/invoke/VarHandle;
end local 0 8: goto 11
StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
9: astore 0
start local 0 10: new java.lang.ExceptionInInitializerError
dup
aload 0
invokespecial java.lang.ExceptionInInitializerError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 11: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
1 8 0 l Ljava/lang/invoke/MethodHandles$Lookup;
10 11 0 e Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
0 8 9 Class java.lang.ReflectiveOperationException
void <init>(java.util.concurrent.Flow$Subscriber<? super T>, java.util.concurrent.Executor, java.util.function.BiConsumer<? super java.util.concurrent.Flow$Subscriber<? super T>, ? super java.lang.Throwable>, [], );
descriptor: (Ljava/util/concurrent/Flow$Subscriber;Ljava/util/concurrent/Executor;Ljava/util/function/BiConsumer;[Ljava/lang/Object;I)V
flags: (0x0000)
Code:
stack=2, 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.lang.Object.<init>:()V
1: aload 0
aload 1
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.subscriber:Ljava/util/concurrent/Flow$Subscriber;
2: aload 0
aload 2
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.executor:Ljava/util/concurrent/Executor;
3: aload 0
aload 3
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.onNextHandler:Ljava/util/function/BiConsumer;
4: aload 0
aload 4
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.array:[Ljava/lang/Object;
5: aload 0
iload 5
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.maxCapacity:I
6: 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 7 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 7 1 subscriber Ljava/util/concurrent/Flow$Subscriber<-TT;>;
0 7 2 executor Ljava/util/concurrent/Executor;
0 7 3 onNextHandler Ljava/util/function/BiConsumer<-Ljava/util/concurrent/Flow$Subscriber<-TT;>;-Ljava/lang/Throwable;>;
0 7 4 array [Ljava/lang/Object;
0 7 5 maxBufferCapacity I
Signature: (Ljava/util/concurrent/Flow$Subscriber<-TT;>;Ljava/util/concurrent/Executor;Ljava/util/function/BiConsumer<-Ljava/util/concurrent/Flow$Subscriber<-TT;>;-Ljava/lang/Throwable;>;[Ljava/lang/Object;I)V
MethodParameters:
Name Flags
subscriber
executor
onNextHandler
array
maxBufferCapacity
final boolean weakCasCtl(int, int);
descriptor: (II)Z
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic java.util.concurrent.SubmissionPublisher$BufferedSubscription.CTL:Ljava/lang/invoke/VarHandle;
aload 0
iload 1
iload 2
invokevirtual java.lang.invoke.VarHandle.weakCompareAndSet:(Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription;II)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 1 1 cmp I
0 1 2 val I
MethodParameters:
Name Flags
cmp
val
final int getAndBitwiseOrCtl(int);
descriptor: (I)I
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic java.util.concurrent.SubmissionPublisher$BufferedSubscription.CTL:Ljava/lang/invoke/VarHandle;
aload 0
iload 1
invokevirtual java.lang.invoke.VarHandle.getAndBitwiseOr:(Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription;I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 1 1 bits I
MethodParameters:
Name Flags
bits
final long subtractDemand(int);
descriptor: (I)J
flags: (0x0010) ACC_FINAL
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: iload 1
ineg
i2l
lstore 2
start local 2 1: lload 2
getstatic java.util.concurrent.SubmissionPublisher$BufferedSubscription.DEMAND:Ljava/lang/invoke/VarHandle;
aload 0
lload 2
invokevirtual java.lang.invoke.VarHandle.getAndAdd:(Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription;J)J
ladd
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 2 1 k I
1 2 2 n J
MethodParameters:
Name Flags
k
final boolean casDemand(long, long);
descriptor: (JJ)Z
flags: (0x0010) ACC_FINAL
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 3 0: getstatic java.util.concurrent.SubmissionPublisher$BufferedSubscription.DEMAND:Ljava/lang/invoke/VarHandle;
aload 0
lload 1
lload 3
invokevirtual java.lang.invoke.VarHandle.compareAndSet:(Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription;JJ)Z
ireturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 1 1 cmp J
0 1 3 val J
MethodParameters:
Name Flags
cmp
val
final boolean isClosed();
descriptor: ()Z
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.ctl:I
iconst_1
iand
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
final int estimateLag();
descriptor: ()I
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.ctl:I
istore 1
start local 1 1: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.tail:I
aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.head:I
isub
istore 2
start local 2 2: iload 1
iconst_1
iand
ifeq 3
iconst_m1
goto 5
StackMap locals: int int
StackMap stack:
3: iload 2
ifge 4
iconst_0
goto 5
StackMap locals:
StackMap stack:
4: iload 2
StackMap locals:
StackMap stack: int
5: ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
1 6 1 c I
2 6 2 n I
final int offer(T, );
descriptor: (Ljava/lang/Object;Z)I
flags: (0x0010) ACC_FINAL
Code:
stack=5, locals=10, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 4
start local 4 1: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.array:[Ljava/lang/Object;
dup
astore 3
start local 3 2: ifnonnull 3
iconst_0
goto 4
StackMap locals: java.lang.Object[] int
StackMap stack:
3: aload 3
arraylength
StackMap locals:
StackMap stack: int
4: istore 5
start local 5 5: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.tail:I
istore 6
start local 6 6: iload 6
iload 5
iconst_1
isub
iand
istore 7
start local 7 7: iload 6
iconst_1
iadd
aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.head:I
isub
istore 8
start local 8 8: iload 5
ifle 20
9: iload 8
iload 5
if_icmplt 12
iload 5
aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.maxCapacity:I
if_icmpge 12
10: aload 0
aload 1
aload 3
iload 6
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.growAndOffer:(Ljava/lang/Object;[Ljava/lang/Object;I)Z
istore 9
start local 9 11: goto 17
end local 9 12: StackMap locals: java.util.concurrent.SubmissionPublisher$BufferedSubscription java.lang.Object int java.lang.Object[] int int int int int
StackMap stack:
iload 8
iload 5
if_icmpge 13
iload 2
ifeq 15
13: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.SubmissionPublisher$BufferedSubscription.QA:Ljava/lang/invoke/VarHandle;
aload 3
iload 7
aconst_null
aload 1
invokevirtual java.lang.invoke.VarHandle.compareAndSet:([Ljava/lang/Object;ILjava/lang/Void;Ljava/lang/Object;)Z
istore 9
start local 9 14: goto 17
end local 9 15: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.SubmissionPublisher$BufferedSubscription.QA:Ljava/lang/invoke/VarHandle;
aload 3
iload 7
aload 1
invokevirtual java.lang.invoke.VarHandle.setRelease:([Ljava/lang/Object;ILjava/lang/Object;)V
16: iconst_1
istore 9
start local 9 17: StackMap locals: int
StackMap stack:
iload 9
ifeq 20
18: aload 0
iload 6
iconst_1
iadd
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.tail:I
19: iload 8
istore 4
end local 9 20: StackMap locals:
StackMap stack:
aload 0
iload 4
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.startOnOffer:(I)I
ireturn
end local 8 end local 7 end local 6 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 21 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 21 1 item TT;
0 21 2 unowned Z
2 21 3 a [Ljava/lang/Object;
1 21 4 stat I
5 21 5 cap I
6 21 6 t I
7 21 7 i I
8 21 8 n I
11 12 9 added Z
14 15 9 added Z
17 20 9 added Z
Signature: (TT;Z)I
MethodParameters:
Name Flags
item
unowned
final boolean growAndOffer(T, [], );
descriptor: (Ljava/lang/Object;[Ljava/lang/Object;I)Z
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: iconst_0
istore 5
start local 5 2: aconst_null
astore 6
start local 6 3: aload 2
ifnull 7
aload 2
arraylength
dup
istore 4
ifle 7
iload 4
iconst_1
ishl
dup
istore 5
ifle 7
4: iload 5
anewarray java.lang.Object
astore 6
5: goto 7
StackMap locals: java.util.concurrent.SubmissionPublisher$BufferedSubscription java.lang.Object java.lang.Object[] int int int java.lang.Object[]
StackMap stack: java.lang.OutOfMemoryError
6: pop
7: StackMap locals:
StackMap stack:
aload 6
ifnonnull 9
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
iload 5
iconst_1
isub
istore 7
start local 7 10: aload 6
iload 3
iinc 3 -1
iload 7
iand
aload 1
aastore
11: iload 4
iconst_1
isub
istore 8
start local 8 12: iload 8
istore 9
start local 9 13: goto 19
14: StackMap locals: int int int
StackMap stack:
getstatic java.util.concurrent.SubmissionPublisher$BufferedSubscription.QA:Ljava/lang/invoke/VarHandle;
aload 2
iload 3
iload 8
iand
aconst_null
invokevirtual java.lang.invoke.VarHandle.getAndSet:([Ljava/lang/Object;ILjava/lang/Void;)Ljava/lang/Object;
astore 10
start local 10 15: aload 10
ifnonnull 17
16: goto 20
17: StackMap locals: java.lang.Object
StackMap stack:
aload 6
iload 3
iinc 3 -1
iload 7
iand
aload 10
aastore
end local 10 18: iinc 9 -1
StackMap locals:
StackMap stack:
19: iload 9
ifge 14
end local 9 end local 8 20: StackMap locals:
StackMap stack:
aload 0
aload 6
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.array:[Ljava/lang/Object;
21: invokestatic java.lang.invoke.VarHandle.releaseFence:()V
22: iconst_1
ireturn
end local 7 end local 6 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 23 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 23 1 item TT;
0 23 2 a [Ljava/lang/Object;
0 23 3 t I
1 23 4 cap I
2 23 5 newCap I
3 23 6 newArray [Ljava/lang/Object;
10 23 7 newMask I
12 20 8 mask I
13 20 9 k I
15 18 10 x Ljava/lang/Object;
Exception table:
from to target type
4 5 6 Class java.lang.OutOfMemoryError
Signature: (TT;[Ljava/lang/Object;I)Z
MethodParameters:
Name Flags
item
a
t
final int retryOffer();
descriptor: (Ljava/lang/Object;)I
flags: (0x0010) ACC_FINAL
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: iconst_0
istore 3
start local 3 1: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.tail:I
istore 4
start local 4 2: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.head:I
istore 5
start local 5 3: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.array:[Ljava/lang/Object;
dup
astore 2
start local 2 4: ifnull 8
aload 2
arraylength
dup
istore 6
start local 6 5: ifle 8
6: getstatic java.util.concurrent.SubmissionPublisher$BufferedSubscription.QA:Ljava/lang/invoke/VarHandle;
aload 2
iload 6
iconst_1
isub
iload 4
iand
aconst_null
aload 1
invokevirtual java.lang.invoke.VarHandle.compareAndSet:([Ljava/lang/Object;ILjava/lang/Void;Ljava/lang/Object;)Z
ifeq 8
7: aload 0
iload 4
iconst_1
iadd
dup_x1
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.tail:I
iload 5
isub
istore 3
end local 6 8: StackMap locals: java.util.concurrent.SubmissionPublisher$BufferedSubscription java.lang.Object java.lang.Object[] int int int
StackMap stack:
aload 0
iload 3
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.startOnOffer:(I)I
ireturn
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 9 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 9 1 item TT;
4 9 2 a [Ljava/lang/Object;
1 9 3 stat I
2 9 4 t I
3 9 5 h I
5 8 6 cap I
Signature: (TT;)I
MethodParameters:
Name Flags
item
final int startOnOffer(int);
descriptor: (I)I
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.ctl:I
dup
istore 2
start local 2 1: bipush 6
iand
iconst_4
if_icmpne 4
2: aload 0
bipush 34
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.getAndBitwiseOrCtl:(I)I
dup
istore 2
bipush 33
iand
ifne 4
3: aload 0
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.tryStart:()V
goto 6
4: StackMap locals: int
StackMap stack:
iload 2
iconst_1
iand
ifeq 6
5: iconst_m1
istore 1
6: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 7 1 stat I
1 7 2 c I
MethodParameters:
Name Flags
stat
final void tryStart();
descriptor: ()V
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=3, args_size=1
start local 0 0: new java.util.concurrent.SubmissionPublisher$ConsumerTask
dup
aload 0
invokespecial java.util.concurrent.SubmissionPublisher$ConsumerTask.<init>:(Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription;)V
astore 2
start local 2 1: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.executor:Ljava/util/concurrent/Executor;
dup
astore 1
start local 1 2: ifnull 8
3: aload 1
aload 2
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
end local 2 end local 1 4: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 1
start local 1 6: aload 0
bipush 9
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.getAndBitwiseOrCtl:(I)I
pop
7: aload 1
athrow
end local 1 8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
2 4 1 e Ljava/util/concurrent/Executor;
1 4 2 task Ljava/util/concurrent/SubmissionPublisher$ConsumerTask<TT;>;
6 8 1 ex Ljava/lang/Throwable;
Exception table:
from to target type
0 4 5 Class java.lang.RuntimeException
0 4 5 Class java.lang.Error
final void startOnSignal(int);
descriptor: (I)V
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.ctl:I
iload 1
iand
iload 1
if_icmpeq 3
1: aload 0
iload 1
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.getAndBitwiseOrCtl:(I)I
bipush 33
iand
ifne 3
2: aload 0
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.tryStart:()V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 4 1 bits I
MethodParameters:
Name Flags
bits
final void onSubscribe();
descriptor: ()V
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
bipush 34
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.startOnSignal:(I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
final void onComplete();
descriptor: ()V
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
bipush 50
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.startOnSignal:(I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
final void onError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnull 2
1: aload 0
aload 1
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.pendingError:Ljava/lang/Throwable;
2: StackMap locals:
StackMap stack:
aload 0
bipush 42
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.getAndBitwiseOrCtl:(I)I
dup
istore 2
start local 2 3: iconst_1
iand
ifne 9
4: iload 2
bipush 32
iand
ifne 6
5: aload 0
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.tryStart:()V
goto 9
6: StackMap locals: int
StackMap stack:
aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.array:[Ljava/lang/Object;
dup
astore 3
start local 3 7: ifnull 9
8: aload 3
aconst_null
invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
end local 3 9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 10 1 ex Ljava/lang/Throwable;
3 10 2 c I
7 9 3 a [Ljava/lang/Object;
MethodParameters:
Name Flags
ex
public final void cancel();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.onError:(Ljava/lang/Throwable;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
public final void request(long);
descriptor: (J)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=7, locals=7, args_size=2
start local 0 start local 1 0: lload 1
lconst_0
lcmp
ifle 8
1: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.demand:J
lstore 3
start local 3 2: lload 3
lload 1
ladd
lstore 5
start local 5 3: aload 0
lload 3
lload 5
lload 3
lcmp
ifge 4
ldc 9223372036854775807
goto 5
StackMap locals: java.util.concurrent.SubmissionPublisher$BufferedSubscription long long long
StackMap stack: java.util.concurrent.SubmissionPublisher$BufferedSubscription long
4: lload 5
StackMap locals: java.util.concurrent.SubmissionPublisher$BufferedSubscription long long long
StackMap stack: java.util.concurrent.SubmissionPublisher$BufferedSubscription long long
5: invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.casDemand:(JJ)Z
ifeq 1
end local 5 end local 3 6: aload 0
bipush 38
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.startOnSignal:(I)V
7: goto 11
8: StackMap locals:
StackMap stack:
aload 0
new java.lang.IllegalArgumentException
dup
9: ldc "non-positive subscription request"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
10: invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.onError:(Ljava/lang/Throwable;)V
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 12 1 n J
2 6 3 p J
3 6 5 d J
MethodParameters:
Name Flags
n
final void consume();
descriptor: ()V
flags: (0x0010) ACC_FINAL
Code:
stack=5, locals=10, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.subscriber:Ljava/util/concurrent/Flow$Subscriber;
dup
astore 1
start local 1 1: ifnull 31
2: aload 0
aload 1
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.subscribeOnOpen:(Ljava/util/concurrent/Flow$Subscriber;)V
3: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.demand:J
lstore 2
start local 2 4: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.head:I
istore 4
start local 4 5: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.tail:I
istore 5
start local 5 6: StackMap locals: java.util.concurrent.SubmissionPublisher$BufferedSubscription java.util.concurrent.Flow$Subscriber long int int
StackMap stack:
aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.ctl:I
dup
istore 6
start local 6 7: bipush 8
iand
ifeq 10
8: aload 0
aload 1
aconst_null
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.closeOnError:(Ljava/util/concurrent/Flow$Subscriber;Ljava/lang/Throwable;)V
9: goto 31
10: StackMap locals: int
StackMap stack:
aload 0
aload 1
lload 2
iload 4
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.takeItems:(Ljava/util/concurrent/Flow$Subscriber;JI)I
dup
istore 7
start local 7 11: ifle 15
12: aload 0
iload 4
iload 7
iadd
dup
istore 4
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.head:I
13: aload 0
iload 7
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.subtractDemand:(I)J
lstore 2
14: goto 6
15: StackMap locals: int
StackMap stack:
aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.demand:J
dup2
lstore 2
lconst_0
lcmp
ifne 17
iload 6
iconst_4
iand
ifeq 17
16: aload 0
iload 6
iload 6
bipush -5
iand
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.weakCasCtl:(II)Z
pop
goto 6
17: StackMap locals:
StackMap stack:
lload 2
lconst_0
lcmp
ifeq 19
iload 6
iconst_4
iand
ifne 19
18: aload 0
iload 6
iload 6
iconst_4
ior
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.weakCasCtl:(II)Z
pop
goto 6
19: StackMap locals:
StackMap stack:
iload 5
aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.tail:I
dup
istore 5
if_icmpne 6
20: iload 5
iload 4
if_icmpne 21
iconst_1
goto 22
StackMap locals:
StackMap stack:
21: iconst_0
StackMap locals:
StackMap stack: int
22: dup
istore 8
start local 8 23: ifeq 26
iload 6
bipush 16
iand
ifeq 26
24: aload 0
aload 1
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.closeOnComplete:(Ljava/util/concurrent/Flow$Subscriber;)V
25: goto 31
26: StackMap locals: int
StackMap stack:
iload 8
ifne 27
lload 2
lconst_0
lcmp
ifne 6
27: StackMap locals:
StackMap stack:
iload 6
iconst_2
iand
ifeq 28
iconst_2
goto 29
StackMap locals:
StackMap stack:
28: bipush 32
StackMap locals:
StackMap stack: int
29: istore 9
start local 9 30: aload 0
iload 6
iload 6
iload 9
iconst_m1
ixor
iand
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.weakCasCtl:(II)Z
ifeq 6
iload 9
bipush 32
if_icmpne 6
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 2 31: StackMap locals: java.util.concurrent.SubmissionPublisher$BufferedSubscription java.util.concurrent.Flow$Subscriber
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
1 32 1 s Ljava/util/concurrent/Flow$Subscriber<-TT;>;
4 31 2 d J
5 31 4 h I
6 31 5 t I
7 31 6 c I
11 31 7 taken I
23 31 8 empty Z
30 31 9 bit I
final int takeItems(java.util.concurrent.Flow$Subscriber<? super T>, long, );
descriptor: (Ljava/util/concurrent/Flow$Subscriber;JI)I
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 4 0: iconst_0
istore 6
start local 6 1: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.array:[Ljava/lang/Object;
dup
astore 5
start local 5 2: ifnull 19
aload 5
arraylength
dup
istore 7
start local 7 3: ifle 19
4: iload 7
iconst_1
isub
istore 8
start local 8 5: iload 8
iconst_3
iushr
iconst_1
iadd
istore 9
start local 9 6: lload 2
iload 9
i2l
lcmp
ifge 7
lload 2
l2i
goto 8
StackMap locals: java.util.concurrent.SubmissionPublisher$BufferedSubscription java.util.concurrent.Flow$Subscriber long int java.lang.Object[] int int int int
StackMap stack:
7: iload 9
StackMap locals:
StackMap stack: int
8: istore 10
start local 10 9: goto 18
10: StackMap locals: int
StackMap stack:
getstatic java.util.concurrent.SubmissionPublisher$BufferedSubscription.QA:Ljava/lang/invoke/VarHandle;
aload 5
iload 4
iload 8
iand
aconst_null
invokevirtual java.lang.invoke.VarHandle.getAndSet:([Ljava/lang/Object;ILjava/lang/Void;)Ljava/lang/Object;
astore 11
start local 11 11: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.waiting:I
ifeq 13
12: aload 0
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.signalWaiter:()V
13: StackMap locals: java.lang.Object
StackMap stack:
aload 11
ifnonnull 15
14: goto 19
15: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 11
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.consumeNext:(Ljava/util/concurrent/Flow$Subscriber;Ljava/lang/Object;)Z
ifne 17
16: goto 19
end local 11 17: StackMap locals:
StackMap stack:
iinc 4 1
iinc 6 1
StackMap locals:
StackMap stack:
18: iload 6
iload 10
if_icmplt 10
end local 10 end local 9 end local 8 end local 7 19: StackMap locals: java.util.concurrent.SubmissionPublisher$BufferedSubscription java.util.concurrent.Flow$Subscriber long int java.lang.Object[] int
StackMap stack:
iload 6
ireturn
end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 20 1 s Ljava/util/concurrent/Flow$Subscriber<-TT;>;
0 20 2 d J
0 20 4 h I
2 20 5 a [Ljava/lang/Object;
1 20 6 k I
3 19 7 cap I
5 19 8 m I
6 19 9 b I
9 19 10 n I
11 17 11 x Ljava/lang/Object;
Signature: (Ljava/util/concurrent/Flow$Subscriber<-TT;>;JI)I
MethodParameters:
Name Flags
s
d
h
final boolean consumeNext(java.util.concurrent.Flow$Subscriber<? super T>, );
descriptor: (Ljava/util/concurrent/Flow$Subscriber;Ljava/lang/Object;)Z
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
astore 3
start local 3 1: aload 1
ifnull 3
2: aload 1
aload 3
invokeinterface java.util.concurrent.Flow$Subscriber.onNext:(Ljava/lang/Object;)V
3: StackMap locals: java.lang.Object
StackMap stack:
iconst_1
ireturn
end local 3 4: StackMap locals: java.util.concurrent.SubmissionPublisher$BufferedSubscription java.util.concurrent.Flow$Subscriber java.lang.Object
StackMap stack: java.lang.Throwable
astore 3
start local 3 5: aload 0
aload 1
aload 3
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.handleOnNext:(Ljava/util/concurrent/Flow$Subscriber;Ljava/lang/Throwable;)V
6: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 7 1 s Ljava/util/concurrent/Flow$Subscriber<-TT;>;
0 7 2 x Ljava/lang/Object;
1 4 3 y TT;
5 7 3 ex Ljava/lang/Throwable;
Exception table:
from to target type
0 3 4 Class java.lang.Throwable
Signature: (Ljava/util/concurrent/Flow$Subscriber<-TT;>;Ljava/lang/Object;)Z
MethodParameters:
Name Flags
s
x
final void handleOnNext(java.util.concurrent.Flow$Subscriber<? super T>, java.lang.Throwable);
descriptor: (Ljava/util/concurrent/Flow$Subscriber;Ljava/lang/Throwable;)V
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.onNextHandler:Ljava/util/function/BiConsumer;
dup
astore 3
start local 3 1: ifnull 5
2: aload 3
aload 1
aload 2
invokeinterface java.util.function.BiConsumer.accept:(Ljava/lang/Object;Ljava/lang/Object;)V
3: goto 5
end local 3 StackMap locals:
StackMap stack: java.lang.Throwable
4: pop
5: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.closeOnError:(Ljava/util/concurrent/Flow$Subscriber;Ljava/lang/Throwable;)V
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 7 1 s Ljava/util/concurrent/Flow$Subscriber<-TT;>;
0 7 2 ex Ljava/lang/Throwable;
1 4 3 h Ljava/util/function/BiConsumer<-Ljava/util/concurrent/Flow$Subscriber<-TT;>;-Ljava/lang/Throwable;>;
Exception table:
from to target type
0 3 4 Class java.lang.Throwable
Signature: (Ljava/util/concurrent/Flow$Subscriber<-TT;>;Ljava/lang/Throwable;)V
MethodParameters:
Name Flags
s
ex
final void subscribeOnOpen(java.util.concurrent.Flow$Subscriber<? super T>);
descriptor: (Ljava/util/concurrent/Flow$Subscriber;)V
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.ctl:I
bipush 64
iand
ifne 2
aload 0
bipush 64
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.getAndBitwiseOrCtl:(I)I
bipush 64
iand
ifne 2
1: aload 0
aload 1
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.consumeSubscribe:(Ljava/util/concurrent/Flow$Subscriber;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 3 1 s Ljava/util/concurrent/Flow$Subscriber<-TT;>;
Signature: (Ljava/util/concurrent/Flow$Subscriber<-TT;>;)V
MethodParameters:
Name Flags
s
final void consumeSubscribe(java.util.concurrent.Flow$Subscriber<? super T>);
descriptor: (Ljava/util/concurrent/Flow$Subscriber;)V
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 5
1: aload 1
aload 0
invokeinterface java.util.concurrent.Flow$Subscriber.onSubscribe:(Ljava/util/concurrent/Flow$Subscription;)V
2: goto 5
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 2
start local 2 4: aload 0
aload 1
aload 2
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.closeOnError:(Ljava/util/concurrent/Flow$Subscriber;Ljava/lang/Throwable;)V
end local 2 5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 6 1 s Ljava/util/concurrent/Flow$Subscriber<-TT;>;
4 5 2 ex Ljava/lang/Throwable;
Exception table:
from to target type
0 2 3 Class java.lang.Throwable
Signature: (Ljava/util/concurrent/Flow$Subscriber<-TT;>;)V
MethodParameters:
Name Flags
s
final void closeOnComplete(java.util.concurrent.Flow$Subscriber<? super T>);
descriptor: (Ljava/util/concurrent/Flow$Subscriber;)V
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.getAndBitwiseOrCtl:(I)I
iconst_1
iand
ifne 2
1: aload 0
aload 1
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.consumeComplete:(Ljava/util/concurrent/Flow$Subscriber;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 3 1 s Ljava/util/concurrent/Flow$Subscriber<-TT;>;
Signature: (Ljava/util/concurrent/Flow$Subscriber<-TT;>;)V
MethodParameters:
Name Flags
s
final void consumeComplete(java.util.concurrent.Flow$Subscriber<? super T>);
descriptor: (Ljava/util/concurrent/Flow$Subscriber;)V
flags: (0x0010) ACC_FINAL
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 4
1: aload 1
invokeinterface java.util.concurrent.Flow$Subscriber.onComplete:()V
2: goto 4
StackMap locals:
StackMap stack: java.lang.Throwable
3: pop
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 5 1 s Ljava/util/concurrent/Flow$Subscriber<-TT;>;
Exception table:
from to target type
0 2 3 Class java.lang.Throwable
Signature: (Ljava/util/concurrent/Flow$Subscriber<-TT;>;)V
MethodParameters:
Name Flags
s
final void closeOnError(java.util.concurrent.Flow$Subscriber<? super T>, java.lang.Throwable);
descriptor: (Ljava/util/concurrent/Flow$Subscriber;Ljava/lang/Throwable;)V
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
bipush 9
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.getAndBitwiseOrCtl:(I)I
iconst_1
iand
ifne 7
1: aload 2
ifnonnull 3
2: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.pendingError:Ljava/lang/Throwable;
astore 2
3: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.pendingError:Ljava/lang/Throwable;
4: aload 0
aconst_null
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.executor:Ljava/util/concurrent/Executor;
5: aload 0
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.signalWaiter:()V
6: aload 0
aload 1
aload 2
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.consumeError:(Ljava/util/concurrent/Flow$Subscriber;Ljava/lang/Throwable;)V
7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 8 1 s Ljava/util/concurrent/Flow$Subscriber<-TT;>;
0 8 2 ex Ljava/lang/Throwable;
Signature: (Ljava/util/concurrent/Flow$Subscriber<-TT;>;Ljava/lang/Throwable;)V
MethodParameters:
Name Flags
s
ex
final void consumeError(java.util.concurrent.Flow$Subscriber<? super T>, java.lang.Throwable);
descriptor: (Ljava/util/concurrent/Flow$Subscriber;Ljava/lang/Throwable;)V
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 4
aload 1
ifnull 4
1: aload 1
aload 2
invokeinterface java.util.concurrent.Flow$Subscriber.onError:(Ljava/lang/Throwable;)V
2: goto 4
StackMap locals:
StackMap stack: java.lang.Throwable
3: pop
4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 5 1 s Ljava/util/concurrent/Flow$Subscriber<-TT;>;
0 5 2 ex Ljava/lang/Throwable;
Exception table:
from to target type
0 2 3 Class java.lang.Throwable
Signature: (Ljava/util/concurrent/Flow$Subscriber<-TT;>;Ljava/lang/Throwable;)V
MethodParameters:
Name Flags
s
ex
final void signalWaiter();
descriptor: ()V
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
iconst_0
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.waiting:I
1: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.waiter:Ljava/lang/Thread;
dup
astore 1
start local 1 2: ifnull 4
3: aload 1
invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
4: StackMap locals: java.lang.Thread
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
2 5 1 w Ljava/lang/Thread;
public final boolean isReleasable();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.ctl:I
iconst_1
iand
ifne 6
1: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.array:[Ljava/lang/Object;
dup
astore 1
start local 1 2: ifnull 5
aload 1
arraylength
dup
istore 2
start local 2 3: ifle 5
4: getstatic java.util.concurrent.SubmissionPublisher$BufferedSubscription.QA:Ljava/lang/invoke/VarHandle;
aload 1
iload 2
iconst_1
isub
aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.tail:I
iand
invokevirtual java.lang.invoke.VarHandle.getAcquire:([Ljava/lang/Object;I)Ljava/lang/Object;
ifnull 6
end local 2 end local 1 5: StackMap locals:
StackMap stack:
iconst_0
ireturn
StackMap locals:
StackMap stack:
6: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
2 5 1 a [Ljava/lang/Object;
3 5 2 cap I
final void awaitSpace(long);
descriptor: (J)V
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.isReleasable:()Z
ifne 10
1: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.executor:Ljava/util/concurrent/Executor;
aload 0
invokestatic java.util.concurrent.ForkJoinPool.helpAsyncBlocker:(Ljava/util/concurrent/Executor;Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;)V
2: aload 0
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.isReleasable:()Z
ifne 10
3: aload 0
lload 1
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.timeout:J
4: aload 0
invokestatic java.util.concurrent.ForkJoinPool.managedBlock:(Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;)V
5: goto 8
StackMap locals:
StackMap stack: java.lang.InterruptedException
6: pop
7: aload 0
ldc -1
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.timeout:J
8: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.timeout:J
ldc -1
lcmp
ifne 10
9: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
0 11 1 nanos J
Exception table:
from to target type
4 5 6 Class java.lang.InterruptedException
MethodParameters:
Name Flags
nanos
public final boolean block();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.timeout:J
lstore 1
start local 1 1: lload 1
ldc 9223372036854775807
lcmp
ifge 2
iconst_1
goto 3
StackMap locals: long
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 3
start local 3 4: iload 3
ifeq 5
invokestatic java.lang.System.nanoTime:()J
lload 1
ladd
goto 6
StackMap locals: int
StackMap stack:
5: lconst_0
StackMap locals:
StackMap stack: long
6: lstore 4
start local 4 7: goto 21
8: StackMap locals: long
StackMap stack:
invokestatic java.lang.Thread.interrupted:()Z
ifeq 12
9: aload 0
ldc -1
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.timeout:J
10: iload 3
ifeq 21
11: goto 22
12: StackMap locals:
StackMap stack:
iload 3
ifeq 14
lload 4
invokestatic java.lang.System.nanoTime:()J
lsub
dup2
lstore 1
lconst_0
lcmp
ifgt 14
13: goto 22
14: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.waiter:Ljava/lang/Thread;
ifnonnull 16
15: aload 0
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.waiter:Ljava/lang/Thread;
goto 21
16: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.waiting:I
ifne 18
17: aload 0
iconst_1
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.waiting:I
goto 21
18: StackMap locals:
StackMap stack:
iload 3
ifeq 20
19: aload 0
lload 1
invokestatic java.util.concurrent.locks.LockSupport.parkNanos:(Ljava/lang/Object;J)V
goto 21
20: StackMap locals:
StackMap stack:
aload 0
invokestatic java.util.concurrent.locks.LockSupport.park:(Ljava/lang/Object;)V
21: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.concurrent.SubmissionPublisher$BufferedSubscription.isReleasable:()Z
ifeq 8
22: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.waiter:Ljava/lang/Thread;
23: aload 0
iconst_0
putfield java.util.concurrent.SubmissionPublisher$BufferedSubscription.waiting:I
24: iconst_1
ireturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Ljava/util/concurrent/SubmissionPublisher$BufferedSubscription<TT;>;
1 25 1 nanos J
4 25 3 timed Z
7 25 4 deadline J
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/Flow$Subscription;Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;
SourceFile: "SubmissionPublisher.java"
NestHost: java.util.concurrent.SubmissionPublisher
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Subscriber = java.util.concurrent.Flow$Subscriber of java.util.concurrent.Flow
public abstract Subscription = java.util.concurrent.Flow$Subscription of java.util.concurrent.Flow
public abstract ManagedBlocker = java.util.concurrent.ForkJoinPool$ManagedBlocker of java.util.concurrent.ForkJoinPool
final BufferedSubscription = java.util.concurrent.SubmissionPublisher$BufferedSubscription of java.util.concurrent.SubmissionPublisher
final ConsumerTask = java.util.concurrent.SubmissionPublisher$ConsumerTask of java.util.concurrent.SubmissionPublisher
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.Contended()