public final class sun.misc.Signal
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.misc.Signal
super_class: java.lang.Object
{
private static java.util.Hashtable<sun.misc.Signal, sun.misc.SignalHandler> handlers;
descriptor: Ljava/util/Hashtable;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/Hashtable<Lsun/misc/Signal;Lsun/misc/SignalHandler;>;
private static java.util.Hashtable<java.lang.Integer, sun.misc.Signal> signals;
descriptor: Ljava/util/Hashtable;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/Hashtable<Ljava/lang/Integer;Lsun/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 sun.misc.Signal.handlers:Ljava/util/Hashtable;
1: new java.util.Hashtable
dup
iconst_4
invokespecial java.util.Hashtable.<init>:(I)V
putstatic sun.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 sun.misc.Signal.number:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/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 sun.misc.Signal.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/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 sun.misc.Signal
ifne 4
3: StackMap locals:
StackMap stack:
iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
checkcast sun.misc.Signal
astore 2
start local 2 5: aload 0
getfield sun.misc.Signal.name:Ljava/lang/String;
aload 2
getfield sun.misc.Signal.name:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
aload 0
getfield sun.misc.Signal.number:I
aload 2
getfield sun.misc.Signal.number:I
if_icmpne 6
iconst_1
ireturn
StackMap locals: sun.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 Lsun/misc/Signal;
0 7 1 other Ljava/lang/Object;
5 7 2 other1 Lsun/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 sun.misc.Signal.number:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/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 sun.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 Lsun/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 0
aload 1
invokestatic sun.misc.Signal.findSignal:(Ljava/lang/String;)I
putfield sun.misc.Signal.number:I
2: aload 0
aload 1
putfield sun.misc.Signal.name:Ljava/lang/String;
3: aload 0
getfield sun.misc.Signal.number:I
ifge 5
4: 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
5: StackMap locals: sun.misc.Signal java.lang.String
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/misc/Signal;
0 6 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
public static synchronized sun.misc.SignalHandler handle(sun.misc.Signal, sun.misc.SignalHandler);
descriptor: (Lsun/misc/Signal;Lsun/misc/SignalHandler;)Lsun/misc/SignalHandler;
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 1
instanceof sun.misc.NativeSignalHandler
ifeq 2
1: aload 1
checkcast sun.misc.NativeSignalHandler
invokevirtual sun.misc.NativeSignalHandler.getHandler:()J
goto 3
StackMap locals:
StackMap stack:
2: ldc 2
3: StackMap locals:
StackMap stack: long
lstore 2
start local 2 4: aload 0
getfield sun.misc.Signal.number:I
lload 2
invokestatic sun.misc.Signal.handle0:(IJ)J
lstore 4
start local 4 5: lload 4
ldc -1
lcmp
ifne 9
6: new java.lang.IllegalArgumentException
dup
7: 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;
8: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: long long
StackMap stack:
getstatic sun.misc.Signal.signals:Ljava/util/Hashtable;
aload 0
getfield sun.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
10: getstatic sun.misc.Signal.handlers:Ljava/util/Hashtable;
dup
astore 6
monitorenter
11: getstatic sun.misc.Signal.handlers:Ljava/util/Hashtable;
aload 0
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.misc.SignalHandler
astore 7
start local 7 12: getstatic sun.misc.Signal.handlers:Ljava/util/Hashtable;
aload 0
invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
13: lload 2
ldc 2
lcmp
ifne 15
14: getstatic sun.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
15: StackMap locals: java.util.Hashtable sun.misc.SignalHandler
StackMap stack:
lload 4
lconst_0
lcmp
ifne 18
16: getstatic sun.misc.SignalHandler.SIG_DFL:Lsun/misc/SignalHandler;
aload 6
monitorexit
17: areturn
18: StackMap locals:
StackMap stack:
lload 4
lconst_1
lcmp
ifne 21
19: getstatic sun.misc.SignalHandler.SIG_IGN:Lsun/misc/SignalHandler;
aload 6
monitorexit
20: areturn
21: StackMap locals:
StackMap stack:
lload 4
ldc 2
lcmp
ifne 24
22: aload 7
aload 6
monitorexit
23: areturn
24: StackMap locals:
StackMap stack:
new sun.misc.NativeSignalHandler
dup
lload 4
invokespecial sun.misc.NativeSignalHandler.<init>:(J)V
aload 6
monitorexit
25: areturn
end local 7 26: StackMap locals: sun.misc.Signal sun.misc.SignalHandler long long java.util.Hashtable
StackMap stack: java.lang.Throwable
aload 6
monitorexit
27: athrow
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 sig Lsun/misc/Signal;
0 28 1 handler Lsun/misc/SignalHandler;
4 28 2 newH J
5 28 4 oldH J
12 26 7 oldHandler Lsun/misc/SignalHandler;
Exception table:
from to target type
11 17 26 any
18 20 26 any
21 23 26 any
24 25 26 any
26 27 26 any
Exceptions:
throws java.lang.IllegalArgumentException
MethodParameters:
Name Flags
sig
handler
public static void raise(sun.misc.Signal);
descriptor: (Lsun/misc/Signal;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: getstatic sun.misc.Signal.handlers:Ljava/util/Hashtable;
aload 0
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 2
1: 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
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.misc.Signal.number:I
invokestatic sun.misc.Signal.raise0:(I)V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 sig Lsun/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=5, locals=4, args_size=1
start local 0 0: getstatic sun.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 sun.misc.Signal
astore 1
start local 1 1: getstatic sun.misc.Signal.handlers:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.misc.SignalHandler
astore 2
start local 2 2: new sun.misc.Signal$1
dup
aload 2
aload 1
invokespecial sun.misc.Signal$1.<init>:(Lsun/misc/SignalHandler;Lsun/misc/Signal;)V
astore 3
start local 3 3: aload 2
ifnull 5
4: new java.lang.Thread
dup
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;
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
invokevirtual java.lang.Thread.start:()V
5: StackMap locals: sun.misc.Signal sun.misc.SignalHandler 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 Lsun/misc/Signal;
2 6 2 handler Lsun/misc/SignalHandler;
3 6 3 runnable Ljava/lang/Runnable;
MethodParameters:
Name Flags
number final
private static native int findSignal(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:
sun.misc.Signal$1
InnerClasses:
sun.misc.Signal$1