JVM_ENTRY_NO_ENV(void*, JVM_RegisterSignal(jint sig, void* handler)) void* newHandler = handler == (void *)2
? PosixSignals::user_handler()
: handler; switch (sig) { /* The following are already used by the VM. */ case SIGFPE: case SIGILL: case SIGSEGV:
#ifdefined(__APPLE__) /* On Darwin, memory access errors commonly results in SIGBUS instead
* of SIGSEGV. */ case SIGBUS: #endif
/* The following signal is used by the VM to dump thread stacks unless ReduceSignalUsageisset,inwhichcasetheuserisallowedtoset hisown_native_handlerforthissignal;thus,ineithercase,
we do not allow JVM_RegisterSignal to change the handler. */ case BREAK_SIGNAL: return (void *)-1;
/* The following signals are used for Shutdown Hooks support. However, if ReduceSignalUsage(-Xrs)isset,ShutdownHooksmustbeinvokedvia System.exit(),Javaisnotallowedtousethesesignals,andthe userisallowedtosethisown_native_handlerforthesesignalsand invokeSystem.exit()asneeded.Terminator.setup()isavoiding registrationofthesesignalswhen-Xrsispresent. -IftheHUPsignalisignored(fromthenohup)command,thenJava isnotallowedtousethissignal.
*/
case SHUTDOWN1_SIGNAL: case SHUTDOWN2_SIGNAL: case SHUTDOWN3_SIGNAL: if (ReduceSignalUsage) return (void*)-1; if (PosixSignals::is_sig_ignored(sig)) return (void*)1;
}
JVM_ENTRY_NO_ENV(jboolean, JVM_RaiseSignal(jint sig)) if (ReduceSignalUsage) { // do not allow SHUTDOWN1_SIGNAL,SHUTDOWN2_SIGNAL,SHUTDOWN3_SIGNAL, // BREAK_SIGNAL to be raised when ReduceSignalUsage is set, since // no handler for them is actually registered in JVM or via // JVM_RegisterSignal. if (sig == SHUTDOWN1_SIGNAL || sig == SHUTDOWN2_SIGNAL ||
sig == SHUTDOWN3_SIGNAL || sig == BREAK_SIGNAL) { return JNI_FALSE;
}
} elseif ((sig == SHUTDOWN1_SIGNAL || sig == SHUTDOWN2_SIGNAL ||
sig == SHUTDOWN3_SIGNAL) && PosixSignals::is_sig_ignored(sig)) { // do not allow SHUTDOWN1_SIGNAL to be raised when SHUTDOWN1_SIGNAL // is ignored, since no handler for them is actually registered in JVM // or via JVM_RegisterSignal. // This also applies for SHUTDOWN2_SIGNAL and SHUTDOWN3_SIGNAL return JNI_FALSE;
}
::raise(sig); return JNI_TRUE;
JVM_END
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.7 Sekunden
(vorverarbeitet am 2026-09-07)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.