public final class com.oracle.svm.core.windows.WindowsVMThreads extends com.oracle.svm.core.thread.VMThreads
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.core.windows.WindowsVMThreads
super_class: com.oracle.svm.core.thread.VMThreads
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.svm.core.thread.VMThreads.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/windows/WindowsVMThreads;
protected com.oracle.svm.core.thread.VMThreads$OSThreadHandle getCurrentOSThreadHandle();
descriptor: ()Lcom/oracle/svm/core/thread/VMThreads$OSThreadHandle;
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=5, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.windows.headers.Process.GetCurrentThread:()Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;
astore 1
start local 1 1: invokestatic com.oracle.svm.core.windows.headers.Process.GetCurrentProcess:()Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;
astore 2
start local 2 2: ldc Lcom/oracle/svm/core/windows/headers/WinBase$LPHANDLE;
invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.windows.headers.WinBase$LPHANDLE
astore 3
start local 3 3: aload 2
aload 1
aload 2
aload 3
invokestatic com.oracle.svm.core.windows.headers.Process.SYNCHRONIZE:()I
iconst_0
iconst_0
invokestatic com.oracle.svm.core.windows.headers.WinBase.DuplicateHandle:(Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;Lcom/oracle/svm/core/windows/headers/WinBase$LPHANDLE;IZI)I
istore 4
start local 4 4: iload 4
ifeq 5
iconst_1
goto 6
StackMap locals: com.oracle.svm.core.windows.WindowsVMThreads com.oracle.svm.core.windows.headers.WinBase$HANDLE com.oracle.svm.core.windows.headers.WinBase$HANDLE com.oracle.svm.core.windows.headers.WinBase$LPHANDLE int
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: ldc "Duplicating thread handle failed."
invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
7: aload 3
invokeinterface com.oracle.svm.core.windows.headers.WinBase$LPHANDLE.read:()Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;
checkcast com.oracle.svm.core.thread.VMThreads$OSThreadHandle
areturn
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 Lcom/oracle/svm/core/windows/WindowsVMThreads;
1 8 1 pseudoThreadHandle Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;
2 8 2 pseudoProcessHandle Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;
3 8 3 pointerToResult Lcom/oracle/svm/core/windows/headers/WinBase$LPHANDLE;
4 8 4 status I
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
protected com.oracle.svm.core.thread.VMThreads$OSThreadId getCurrentOSThreadId();
descriptor: ()Lcom/oracle/svm/core/thread/VMThreads$OSThreadId;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.windows.headers.Process.GetCurrentThreadId:()I
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
checkcast com.oracle.svm.core.thread.VMThreads$OSThreadId
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/windows/WindowsVMThreads;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
protected void joinNoTransition(com.oracle.svm.core.thread.VMThreads$OSThreadHandle);
descriptor: (Lcom/oracle/svm/core/thread/VMThreads$OSThreadHandle;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.svm.core.windows.headers.WinBase$HANDLE
astore 2
start local 2 1: aload 2
invokestatic com.oracle.svm.core.windows.headers.SynchAPI.INFINITE:()I
invokestatic com.oracle.svm.core.windows.headers.SynchAPI.WaitForSingleObjectNoTransition:(Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;I)I
istore 3
start local 3 2: iload 3
invokestatic com.oracle.svm.core.windows.headers.SynchAPI.WAIT_OBJECT_0:()I
if_icmpne 3
iconst_1
goto 4
StackMap locals: com.oracle.svm.core.windows.headers.WinBase$HANDLE int
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: ldc "Joining thread failed."
invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
5: aload 2
invokestatic com.oracle.svm.core.windows.headers.WinBase.CloseHandle:(Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;)I
istore 3
6: iload 3
ifeq 7
iconst_1
goto 8
StackMap locals:
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: ldc "Closing the thread handle failed."
invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/core/windows/WindowsVMThreads;
0 10 1 osThreadHandle Lcom/oracle/svm/core/thread/VMThreads$OSThreadHandle;
1 10 2 handle Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;
2 10 3 status I
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.")
MethodParameters:
Name Flags
osThreadHandle
protected boolean initializeOnce();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.windows.WindowsVMLockSupport.initialize:()V
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/windows/WindowsVMThreads;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code. Too early for safepoints.")
public void failFatally(int, org.graalvm.nativeimage.c.type.CCharPointer);
descriptor: (ILorg/graalvm/nativeimage/c/type/CCharPointer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
invokestatic com.oracle.svm.core.windows.headers.LibC.exit:(I)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/windows/WindowsVMThreads;
0 2 1 code I
0 2 2 message Lorg/graalvm/nativeimage/c/type/CCharPointer;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Thread state not set up.")
MethodParameters:
Name Flags
code
message
}
SourceFile: "WindowsVMThreads.java"
InnerClasses:
public abstract OSThreadHandle = com.oracle.svm.core.thread.VMThreads$OSThreadHandle of com.oracle.svm.core.thread.VMThreads
public abstract OSThreadId = com.oracle.svm.core.thread.VMThreads$OSThreadId of com.oracle.svm.core.thread.VMThreads
public abstract HANDLE = com.oracle.svm.core.windows.headers.WinBase$HANDLE of com.oracle.svm.core.windows.headers.WinBase
public abstract LPHANDLE = com.oracle.svm.core.windows.headers.WinBase$LPHANDLE of com.oracle.svm.core.windows.headers.WinBase