public final class jdk.internal.misc.Signal
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: jdk.internal.misc.Signal
super_class: java.lang.Object
{
private static java.util.Hashtable<jdk.internal.misc.Signal, jdk.internal.misc.Signal$Handler> handlers;
descriptor: Ljava/util/Hashtable;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/Hashtable<Ljdk/internal/misc/Signal;Ljdk/internal/misc/Signal$Handler;>;
private static java.util.Hashtable<java.lang.Integer, jdk.internal.misc.Signal> signals;
descriptor: Ljava/util/Hashtable;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/Hashtable<Ljava/lang/Integer;Ljdk/internal/misc/Signal;>;
private int number;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.util.Hashtable
dup
iconst_4
invokespecial java.util.Hashtable.<init>:(I)V
putstatic jdk.internal.misc.Signal.handlers:Ljava/util/Hashtable;
1: new java.util.Hashtable
dup
iconst_4
invokespecial java.util.Hashtable.<init>:(I)V
putstatic jdk.internal.misc.Signal.signals:Ljava/util/Hashtable;
return
LocalVariableTable:
Start End Slot Name Signature
public int getNumber();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.misc.Signal.number:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/misc/Signal;
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.misc.Signal.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/misc/Signal;
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
ifnull 3
aload 1
instanceof jdk.internal.misc.Signal
ifne 4
3: StackMap locals:
StackMap stack:
iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
checkcast jdk.internal.misc.Signal
astore 2
start local 2 5: aload 0
getfield jdk.internal.misc.Signal.name:Ljava/lang/String;
aload 2
getfield jdk.internal.misc.Signal.name:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
aload 0
getfield jdk.internal.misc.Signal.number:I
aload 2
getfield jdk.internal.misc.Signal.number:I
if_icmpne 6
iconst_1
ireturn
StackMap locals: jdk.internal.misc.Signal
StackMap stack:
6: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/misc/Signal;
0 7 1 other Ljava/lang/Object;
5 7 2 other1 Ljdk/internal/misc/Signal;
MethodParameters:
Name Flags
other
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.misc.Signal.number:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/misc/Signal;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "SIG"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.misc.Signal.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/misc/Signal;
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
ldc "name"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
2: aload 1
ldc "SIG"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 4
3: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unknown signal: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: jdk.internal.misc.Signal java.lang.String
StackMap stack:
aload 0
aload 1
putfield jdk.internal.misc.Signal.name:Ljava/lang/String;
5: aload 0
aload 1
invokestatic jdk.internal.misc.Signal.findSignal0:(Ljava/lang/String;)I
putfield jdk.internal.misc.Signal.number:I
6: aload 0
getfield jdk.internal.misc.Signal.number:I
ifge 8
7: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unknown signal: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/internal/misc/Signal;
0 9 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
public static synchronized jdk.internal.misc.Signal$Handler handle(jdk.internal.misc.Signal, jdk.internal.misc.Signal$Handler);
descriptor: (Ljdk/internal/misc/Signal;Ljdk/internal/misc/Signal$Handler;)Ljdk/internal/misc/Signal$Handler;
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 0
ldc "sig"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: aload 1
ldc "handler"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
2: aload 1
instanceof jdk.internal.misc.Signal$NativeHandler
ifeq 4
3: aload 1
checkcast jdk.internal.misc.Signal$NativeHandler
invokevirtual jdk.internal.misc.Signal$NativeHandler.getHandler:()J
goto 5
StackMap locals:
StackMap stack:
4: ldc 2
5: StackMap locals:
StackMap stack: long
lstore 2
start local 2 6: aload 0
getfield jdk.internal.misc.Signal.number:I
lload 2
invokestatic jdk.internal.misc.Signal.handle0:(IJ)J
lstore 4
start local 4 7: lload 4
ldc -1
lcmp
ifne 11
8: new java.lang.IllegalArgumentException
dup
9: new java.lang.StringBuilder
dup
ldc "Signal already used by VM or OS: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: long long
StackMap stack:
getstatic jdk.internal.misc.Signal.signals:Ljava/util/Hashtable;
aload 0
getfield jdk.internal.misc.Signal.number:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 0
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: getstatic jdk.internal.misc.Signal.handlers:Ljava/util/Hashtable;
dup
astore 6
monitorenter
13: getstatic jdk.internal.misc.Signal.handlers:Ljava/util/Hashtable;
aload 0
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.internal.misc.Signal$Handler
astore 7
start local 7 14: getstatic jdk.internal.misc.Signal.handlers:Ljava/util/Hashtable;
aload 0
invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
15: lload 2
ldc 2
lcmp
ifne 17
16: getstatic jdk.internal.misc.Signal.handlers:Ljava/util/Hashtable;
aload 0
aload 1
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: StackMap locals: java.util.Hashtable jdk.internal.misc.Signal$Handler
StackMap stack:
lload 4
lconst_0
lcmp
ifne 20
18: getstatic jdk.internal.misc.Signal$Handler.SIG_DFL:Ljdk/internal/misc/Signal$Handler;
aload 6
monitorexit
19: areturn
20: StackMap locals:
StackMap stack:
lload 4
lconst_1
lcmp
ifne 23
21: getstatic jdk.internal.misc.Signal$Handler.SIG_IGN:Ljdk/internal/misc/Signal$Handler;
aload 6
monitorexit
22: areturn
23: StackMap locals:
StackMap stack:
lload 4
ldc 2
lcmp
ifne 26
24: aload 7
aload 6
monitorexit
25: areturn
26: StackMap locals:
StackMap stack:
new jdk.internal.misc.Signal$NativeHandler
dup
lload 4
invokespecial jdk.internal.misc.Signal$NativeHandler.<init>:(J)V
aload 6
monitorexit
27: areturn
end local 7 28: StackMap locals: jdk.internal.misc.Signal jdk.internal.misc.Signal$Handler long long java.util.Hashtable
StackMap stack: java.lang.Throwable
aload 6
monitorexit
29: athrow
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 sig Ljdk/internal/misc/Signal;
0 30 1 handler Ljdk/internal/misc/Signal$Handler;
6 30 2 newH J
7 30 4 oldH J
14 28 7 oldHandler Ljdk/internal/misc/Signal$Handler;
Exception table:
from to target type
13 19 28 any
20 22 28 any
23 25 28 any
26 27 28 any
28 29 28 any
Exceptions:
throws java.lang.IllegalArgumentException
MethodParameters:
Name Flags
sig
handler
public static void raise(jdk.internal.misc.Signal);
descriptor: (Ljdk/internal/misc/Signal;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
ldc "sig"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: getstatic jdk.internal.misc.Signal.handlers:Ljava/util/Hashtable;
aload 0
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 3
2: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unhandled signal: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.misc.Signal.number:I
invokestatic jdk.internal.misc.Signal.raise0:(I)V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 sig Ljdk/internal/misc/Signal;
Exceptions:
throws java.lang.IllegalArgumentException
MethodParameters:
Name Flags
sig
private static void dispatch(int);
descriptor: (I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=4, args_size=1
start local 0 0: getstatic jdk.internal.misc.Signal.signals:Ljava/util/Hashtable;
iload 0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.internal.misc.Signal
astore 1
start local 1 1: getstatic jdk.internal.misc.Signal.handlers:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.internal.misc.Signal$Handler
astore 2
start local 2 2: new jdk.internal.misc.Signal$1
dup
aload 2
aload 1
invokespecial jdk.internal.misc.Signal$1.<init>:(Ljdk/internal/misc/Signal$Handler;Ljdk/internal/misc/Signal;)V
astore 3
start local 3 3: aload 2
ifnull 5
4: new java.lang.Thread
dup
aconst_null
aload 3
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " handler"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
lconst_0
iconst_0
invokespecial java.lang.Thread.<init>:(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;JZ)V
invokevirtual java.lang.Thread.start:()V
5: StackMap locals: jdk.internal.misc.Signal jdk.internal.misc.Signal$Handler java.lang.Runnable
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 number I
1 6 1 sig Ljdk/internal/misc/Signal;
2 6 2 handler Ljdk/internal/misc/Signal$Handler;
3 6 3 runnable Ljava/lang/Runnable;
MethodParameters:
Name Flags
number final
private static native int findSignal0(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
sigName
private static native long handle0(int, long);
descriptor: (IJ)J
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
sig
nativeH
private static native void raise0(int);
descriptor: (I)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
sig
}
SourceFile: "Signal.java"
NestMembers:
jdk.internal.misc.Signal$1 jdk.internal.misc.Signal$Handler jdk.internal.misc.Signal$NativeHandler
InnerClasses:
jdk.internal.misc.Signal$1
public abstract Handler = jdk.internal.misc.Signal$Handler of jdk.internal.misc.Signal
final NativeHandler = jdk.internal.misc.Signal$NativeHandler of jdk.internal.misc.Signal