class sun.nio.ch.Invoker
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.ch.Invoker
super_class: java.lang.Object
{
private static final int maxHandlerInvokeCount;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.ThreadLocal<sun.nio.ch.Invoker$GroupAndInvokeCount> myGroupAndInvokeCount;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Lsun/nio/ch/Invoker$GroupAndInvokeCount;>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc Lsun/nio/ch/Invoker;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic sun.nio.ch.Invoker.$assertionsDisabled:Z
3: new sun.security.action.GetIntegerAction
dup
ldc "sun.nio.ch.maxCompletionHandlersOnStack"
bipush 16
invokespecial sun.security.action.GetIntegerAction.<init>:(Ljava/lang/String;I)V
4: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
putstatic sun.nio.ch.Invoker.maxHandlerInvokeCount:I
5: new sun.nio.ch.Invoker$1
dup
invokespecial sun.nio.ch.Invoker$1.<init>:()V
6: putstatic sun.nio.ch.Invoker.myGroupAndInvokeCount:Ljava/lang/ThreadLocal;
7: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/Invoker;
static void bindToGroup(sun.nio.ch.AsynchronousChannelGroupImpl);
descriptor: (Lsun/nio/ch/AsynchronousChannelGroupImpl;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic sun.nio.ch.Invoker.myGroupAndInvokeCount:Ljava/lang/ThreadLocal;
new sun.nio.ch.Invoker$GroupAndInvokeCount
dup
aload 0
invokespecial sun.nio.ch.Invoker$GroupAndInvokeCount.<init>:(Lsun/nio/ch/AsynchronousChannelGroupImpl;)V
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 group Lsun/nio/ch/AsynchronousChannelGroupImpl;
MethodParameters:
Name Flags
group
static sun.nio.ch.Invoker$GroupAndInvokeCount getGroupAndInvokeCount();
descriptor: ()Lsun/nio/ch/Invoker$GroupAndInvokeCount;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic sun.nio.ch.Invoker.myGroupAndInvokeCount:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast sun.nio.ch.Invoker$GroupAndInvokeCount
areturn
LocalVariableTable:
Start End Slot Name Signature
static boolean isBoundToAnyGroup();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic sun.nio.ch.Invoker.myGroupAndInvokeCount:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
LocalVariableTable:
Start End Slot Name Signature
static boolean mayInvokeDirect(sun.nio.ch.Invoker$GroupAndInvokeCount, sun.nio.ch.AsynchronousChannelGroupImpl);
descriptor: (Lsun/nio/ch/Invoker$GroupAndInvokeCount;Lsun/nio/ch/AsynchronousChannelGroupImpl;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ifnull 4
1: aload 0
invokevirtual sun.nio.ch.Invoker$GroupAndInvokeCount.group:()Lsun/nio/ch/AsynchronousChannelGroupImpl;
aload 1
if_acmpne 4
2: aload 0
invokevirtual sun.nio.ch.Invoker$GroupAndInvokeCount.invokeCount:()I
getstatic sun.nio.ch.Invoker.maxHandlerInvokeCount:I
if_icmpge 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 myGroupAndInvokeCount Lsun/nio/ch/Invoker$GroupAndInvokeCount;
0 5 1 group Lsun/nio/ch/AsynchronousChannelGroupImpl;
MethodParameters:
Name Flags
myGroupAndInvokeCount
group
static <V, A> void invokeUnchecked(java.nio.channels.CompletionHandler<V, ? super A>, A, V, java.lang.Throwable);
descriptor: (Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ifnonnull 3
1: aload 0
aload 2
aload 1
invokeinterface java.nio.channels.CompletionHandler.completed:(Ljava/lang/Object;Ljava/lang/Object;)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
aload 3
aload 1
invokeinterface java.nio.channels.CompletionHandler.failed:(Ljava/lang/Throwable;Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.interrupted:()Z
pop
5: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
ifnull 12
6: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 4
start local 4 7: aload 4
instanceof sun.misc.InnocuousThread
ifeq 12
8: getstatic sun.nio.ch.Invoker.myGroupAndInvokeCount:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast sun.nio.ch.Invoker$GroupAndInvokeCount
astore 5
start local 5 9: aload 4
checkcast sun.misc.InnocuousThread
invokevirtual sun.misc.InnocuousThread.eraseThreadLocals:()V
10: aload 5
ifnull 12
11: getstatic sun.nio.ch.Invoker.myGroupAndInvokeCount:Ljava/lang/ThreadLocal;
aload 5
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
end local 5 end local 4 12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 handler Ljava/nio/channels/CompletionHandler<TV;-TA;>;
0 13 1 attachment TA;
0 13 2 value TV;
0 13 3 exc Ljava/lang/Throwable;
7 12 4 me Ljava/lang/Thread;
9 12 5 thisGroupAndInvokeCount Lsun/nio/ch/Invoker$GroupAndInvokeCount;
Signature: <V:Ljava/lang/Object;A:Ljava/lang/Object;>(Ljava/nio/channels/CompletionHandler<TV;-TA;>;TA;TV;Ljava/lang/Throwable;)V
MethodParameters:
Name Flags
handler
attachment
value
exc
static <V, A> void invokeDirect(sun.nio.ch.Invoker$GroupAndInvokeCount, java.nio.channels.CompletionHandler<V, ? super A>, A, V, java.lang.Throwable);
descriptor: (Lsun/nio/ch/Invoker$GroupAndInvokeCount;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokevirtual sun.nio.ch.Invoker$GroupAndInvokeCount.incrementInvokeCount:()V
1: aload 1
aload 2
aload 3
aload 4
invokestatic sun.nio.ch.Invoker.invokeUnchecked:(Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 myGroupAndInvokeCount Lsun/nio/ch/Invoker$GroupAndInvokeCount;
0 3 1 handler Ljava/nio/channels/CompletionHandler<TV;-TA;>;
0 3 2 attachment TA;
0 3 3 result TV;
0 3 4 exc Ljava/lang/Throwable;
Signature: <V:Ljava/lang/Object;A:Ljava/lang/Object;>(Lsun/nio/ch/Invoker$GroupAndInvokeCount;Ljava/nio/channels/CompletionHandler<TV;-TA;>;TA;TV;Ljava/lang/Throwable;)V
MethodParameters:
Name Flags
myGroupAndInvokeCount
handler
attachment
result
exc
static <V, A> void invoke(java.nio.channels.AsynchronousChannel, java.nio.channels.CompletionHandler<V, ? super A>, A, V, java.lang.Throwable);
descriptor: (Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iconst_0
istore 5
start local 5 1: iconst_0
istore 6
start local 6 2: getstatic sun.nio.ch.Invoker.myGroupAndInvokeCount:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast sun.nio.ch.Invoker$GroupAndInvokeCount
astore 7
start local 7 3: aload 7
ifnull 9
4: aload 7
invokevirtual sun.nio.ch.Invoker$GroupAndInvokeCount.group:()Lsun/nio/ch/AsynchronousChannelGroupImpl;
aload 0
checkcast sun.nio.ch.Groupable
invokeinterface sun.nio.ch.Groupable.group:()Lsun/nio/ch/AsynchronousChannelGroupImpl;
if_acmpne 6
5: iconst_1
istore 6
6: StackMap locals: int int sun.nio.ch.Invoker$GroupAndInvokeCount
StackMap stack:
iload 6
ifeq 9
7: aload 7
invokevirtual sun.nio.ch.Invoker$GroupAndInvokeCount.invokeCount:()I
getstatic sun.nio.ch.Invoker.maxHandlerInvokeCount:I
if_icmpge 9
8: iconst_1
istore 5
9: StackMap locals:
StackMap stack:
iload 5
ifeq 12
10: aload 7
aload 1
aload 2
aload 3
aload 4
invokestatic sun.nio.ch.Invoker.invokeDirect:(Lsun/nio/ch/Invoker$GroupAndInvokeCount;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
11: goto 21
12: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
aload 4
invokestatic sun.nio.ch.Invoker.invokeIndirectly:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
13: goto 21
StackMap locals:
StackMap stack: java.util.concurrent.RejectedExecutionException
14: pop
15: iload 6
ifeq 20
16: aload 7
17: aload 1
aload 2
aload 3
aload 4
18: invokestatic sun.nio.ch.Invoker.invokeDirect:(Lsun/nio/ch/Invoker$GroupAndInvokeCount;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
19: goto 21
20: StackMap locals:
StackMap stack:
new java.nio.channels.ShutdownChannelGroupException
dup
invokespecial java.nio.channels.ShutdownChannelGroupException.<init>:()V
athrow
21: StackMap locals:
StackMap stack:
return
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 22 0 channel Ljava/nio/channels/AsynchronousChannel;
0 22 1 handler Ljava/nio/channels/CompletionHandler<TV;-TA;>;
0 22 2 attachment TA;
0 22 3 result TV;
0 22 4 exc Ljava/lang/Throwable;
1 22 5 invokeDirect Z
2 22 6 identityOkay Z
3 22 7 thisGroupAndInvokeCount Lsun/nio/ch/Invoker$GroupAndInvokeCount;
Exception table:
from to target type
12 13 14 Class java.util.concurrent.RejectedExecutionException
Signature: <V:Ljava/lang/Object;A:Ljava/lang/Object;>(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler<TV;-TA;>;TA;TV;Ljava/lang/Throwable;)V
MethodParameters:
Name Flags
channel
handler
attachment
result
exc
static <V, A> void invokeIndirectly(java.nio.channels.AsynchronousChannel, java.nio.channels.CompletionHandler<V, ? super A>, A, V, java.lang.Throwable);
descriptor: (Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
checkcast sun.nio.ch.Groupable
invokeinterface sun.nio.ch.Groupable.group:()Lsun/nio/ch/AsynchronousChannelGroupImpl;
new sun.nio.ch.Invoker$2
dup
aload 1
aload 2
aload 3
aload 4
invokespecial sun.nio.ch.Invoker$2.<init>:(Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
invokevirtual sun.nio.ch.AsynchronousChannelGroupImpl.executeOnPooledThread:(Ljava/lang/Runnable;)V
1: goto 4
StackMap locals:
StackMap stack: java.util.concurrent.RejectedExecutionException
2: pop
3: new java.nio.channels.ShutdownChannelGroupException
dup
invokespecial java.nio.channels.ShutdownChannelGroupException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 channel Ljava/nio/channels/AsynchronousChannel;
0 5 1 handler Ljava/nio/channels/CompletionHandler<TV;-TA;>;
0 5 2 attachment TA;
0 5 3 result TV;
0 5 4 exc Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.util.concurrent.RejectedExecutionException
Signature: <V:Ljava/lang/Object;A:Ljava/lang/Object;>(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler<TV;-TA;>;TA;TV;Ljava/lang/Throwable;)V
MethodParameters:
Name Flags
channel
handler final
attachment final
result final
exc final
static <V, A> void invokeIndirectly(java.nio.channels.CompletionHandler<V, ? super A>, A, V, java.lang.Throwable, java.util.concurrent.Executor);
descriptor: (Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;Ljava/util/concurrent/Executor;)V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 4
new sun.nio.ch.Invoker$3
dup
aload 0
aload 1
aload 2
aload 3
invokespecial sun.nio.ch.Invoker$3.<init>:(Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
1: goto 4
StackMap locals:
StackMap stack: java.util.concurrent.RejectedExecutionException
2: pop
3: new java.nio.channels.ShutdownChannelGroupException
dup
invokespecial java.nio.channels.ShutdownChannelGroupException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 handler Ljava/nio/channels/CompletionHandler<TV;-TA;>;
0 5 1 attachment TA;
0 5 2 value TV;
0 5 3 exc Ljava/lang/Throwable;
0 5 4 executor Ljava/util/concurrent/Executor;
Exception table:
from to target type
0 1 2 Class java.util.concurrent.RejectedExecutionException
Signature: <V:Ljava/lang/Object;A:Ljava/lang/Object;>(Ljava/nio/channels/CompletionHandler<TV;-TA;>;TA;TV;Ljava/lang/Throwable;Ljava/util/concurrent/Executor;)V
MethodParameters:
Name Flags
handler final
attachment final
value final
exc final
executor
static void invokeOnThreadInThreadPool(sun.nio.ch.Groupable, java.lang.Runnable);
descriptor: (Lsun/nio/ch/Groupable;Ljava/lang/Runnable;)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: getstatic sun.nio.ch.Invoker.myGroupAndInvokeCount:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast sun.nio.ch.Invoker$GroupAndInvokeCount
astore 3
start local 3 1: aload 0
invokeinterface sun.nio.ch.Groupable.group:()Lsun/nio/ch/AsynchronousChannelGroupImpl;
astore 4
start local 4 2: aload 3
ifnonnull 5
3: iconst_0
istore 2
start local 2 4: goto 8
end local 2 5: StackMap locals: sun.nio.ch.Groupable java.lang.Runnable top sun.nio.ch.Invoker$GroupAndInvokeCount sun.nio.ch.AsynchronousChannelGroupImpl
StackMap stack:
aload 3
getfield sun.nio.ch.Invoker$GroupAndInvokeCount.group:Lsun/nio/ch/AsynchronousChannelGroupImpl;
aload 4
if_acmpne 6
iconst_1
goto 7
StackMap locals:
StackMap stack:
6: iconst_0
StackMap locals:
StackMap stack: int
7: istore 2
start local 2 8: StackMap locals: sun.nio.ch.Groupable java.lang.Runnable int sun.nio.ch.Invoker$GroupAndInvokeCount sun.nio.ch.AsynchronousChannelGroupImpl
StackMap stack:
iload 2
ifeq 11
9: aload 1
invokeinterface java.lang.Runnable.run:()V
10: goto 15
11: StackMap locals:
StackMap stack:
aload 4
aload 1
invokevirtual sun.nio.ch.AsynchronousChannelGroupImpl.executeOnPooledThread:(Ljava/lang/Runnable;)V
12: goto 15
StackMap locals:
StackMap stack: java.util.concurrent.RejectedExecutionException
13: pop
14: new java.nio.channels.ShutdownChannelGroupException
dup
invokespecial java.nio.channels.ShutdownChannelGroupException.<init>:()V
athrow
15: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 channel Lsun/nio/ch/Groupable;
0 16 1 task Ljava/lang/Runnable;
4 5 2 invokeDirect Z
8 16 2 invokeDirect Z
1 16 3 thisGroupAndInvokeCount Lsun/nio/ch/Invoker$GroupAndInvokeCount;
2 16 4 targetGroup Lsun/nio/ch/AsynchronousChannelGroupImpl;
Exception table:
from to target type
8 12 13 Class java.util.concurrent.RejectedExecutionException
MethodParameters:
Name Flags
channel
task
static <V, A> void invokeUnchecked(sun.nio.ch.PendingFuture<V, A>);
descriptor: (Lsun/nio/ch/PendingFuture;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: getstatic sun.nio.ch.Invoker.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual sun.nio.ch.PendingFuture.isDone:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.PendingFuture.handler:()Ljava/nio/channels/CompletionHandler;
astore 1
start local 1 2: aload 1
ifnull 8
3: aload 1
4: aload 0
invokevirtual sun.nio.ch.PendingFuture.attachment:()Ljava/lang/Object;
5: aload 0
invokevirtual sun.nio.ch.PendingFuture.value:()Ljava/lang/Object;
6: aload 0
invokevirtual sun.nio.ch.PendingFuture.exception:()Ljava/lang/Throwable;
7: invokestatic sun.nio.ch.Invoker.invokeUnchecked:(Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
8: StackMap locals: java.nio.channels.CompletionHandler
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 future Lsun/nio/ch/PendingFuture<TV;TA;>;
2 9 1 handler Ljava/nio/channels/CompletionHandler<TV;-TA;>;
Signature: <V:Ljava/lang/Object;A:Ljava/lang/Object;>(Lsun/nio/ch/PendingFuture<TV;TA;>;)V
MethodParameters:
Name Flags
future
static <V, A> void invoke(sun.nio.ch.PendingFuture<V, A>);
descriptor: (Lsun/nio/ch/PendingFuture;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: getstatic sun.nio.ch.Invoker.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual sun.nio.ch.PendingFuture.isDone:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.PendingFuture.handler:()Ljava/nio/channels/CompletionHandler;
astore 1
start local 1 2: aload 1
ifnull 9
3: aload 0
invokevirtual sun.nio.ch.PendingFuture.channel:()Ljava/nio/channels/AsynchronousChannel;
4: aload 1
5: aload 0
invokevirtual sun.nio.ch.PendingFuture.attachment:()Ljava/lang/Object;
6: aload 0
invokevirtual sun.nio.ch.PendingFuture.value:()Ljava/lang/Object;
7: aload 0
invokevirtual sun.nio.ch.PendingFuture.exception:()Ljava/lang/Throwable;
8: invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
9: StackMap locals: java.nio.channels.CompletionHandler
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 future Lsun/nio/ch/PendingFuture<TV;TA;>;
2 10 1 handler Ljava/nio/channels/CompletionHandler<TV;-TA;>;
Signature: <V:Ljava/lang/Object;A:Ljava/lang/Object;>(Lsun/nio/ch/PendingFuture<TV;TA;>;)V
MethodParameters:
Name Flags
future
static <V, A> void invokeIndirectly(sun.nio.ch.PendingFuture<V, A>);
descriptor: (Lsun/nio/ch/PendingFuture;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: getstatic sun.nio.ch.Invoker.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual sun.nio.ch.PendingFuture.isDone:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.PendingFuture.handler:()Ljava/nio/channels/CompletionHandler;
astore 1
start local 1 2: aload 1
ifnull 9
3: aload 0
invokevirtual sun.nio.ch.PendingFuture.channel:()Ljava/nio/channels/AsynchronousChannel;
4: aload 1
5: aload 0
invokevirtual sun.nio.ch.PendingFuture.attachment:()Ljava/lang/Object;
6: aload 0
invokevirtual sun.nio.ch.PendingFuture.value:()Ljava/lang/Object;
7: aload 0
invokevirtual sun.nio.ch.PendingFuture.exception:()Ljava/lang/Throwable;
8: invokestatic sun.nio.ch.Invoker.invokeIndirectly:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
9: StackMap locals: java.nio.channels.CompletionHandler
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 future Lsun/nio/ch/PendingFuture<TV;TA;>;
2 10 1 handler Ljava/nio/channels/CompletionHandler<TV;-TA;>;
Signature: <V:Ljava/lang/Object;A:Ljava/lang/Object;>(Lsun/nio/ch/PendingFuture<TV;TA;>;)V
MethodParameters:
Name Flags
future
}
SourceFile: "Invoker.java"
NestMembers:
sun.nio.ch.Invoker$1 sun.nio.ch.Invoker$2 sun.nio.ch.Invoker$3 sun.nio.ch.Invoker$GroupAndInvokeCount
InnerClasses:
sun.nio.ch.Invoker$1
sun.nio.ch.Invoker$2
sun.nio.ch.Invoker$3
GroupAndInvokeCount = sun.nio.ch.Invoker$GroupAndInvokeCount of sun.nio.ch.Invoker