< prev index next >

src/hotspot/os/bsd/os_bsd.cpp

Print this page

        

*** 1828,1838 **** // a counter for each possible signal value static volatile jint pending_signals[NSIG+1] = { 0 }; static Semaphore* sig_sem = NULL; ! void os::signal_init_pd() { // Initialize signal structures ::memset((void*)pending_signals, 0, sizeof(pending_signals)); // Initialize signal semaphore sig_sem = new Semaphore(); --- 1828,1838 ---- // a counter for each possible signal value static volatile jint pending_signals[NSIG+1] = { 0 }; static Semaphore* sig_sem = NULL; ! static void jdk_misc_signal_init() { // Initialize signal structures ::memset((void*)pending_signals, 0, sizeof(pending_signals)); // Initialize signal semaphore sig_sem = new Semaphore();
*** 1841,1851 **** void os::signal_notify(int sig) { if (sig_sem != NULL) { Atomic::inc(&pending_signals[sig]); sig_sem->signal(); } else { ! // Signal thread is not created with ReduceSignalUsage and signal_init_pd // initialization isn't called. assert(ReduceSignalUsage, "signal semaphore should be created"); } } --- 1841,1851 ---- void os::signal_notify(int sig) { if (sig_sem != NULL) { Atomic::inc(&pending_signals[sig]); sig_sem->signal(); } else { ! // Signal thread is not created with ReduceSignalUsage and jdk_misc_signal_init // initialization isn't called. assert(ReduceSignalUsage, "signal semaphore should be created"); } }
*** 2771,2781 **** // extern "C" JNIEXPORT int JVM_handle_bsd_signal(int signo, siginfo_t* siginfo, void* ucontext, int abort_if_unrecognized); ! void signalHandler(int sig, siginfo_t* info, void* uc) { assert(info != NULL && uc != NULL, "it must be old kernel"); int orig_errno = errno; // Preserve errno value over signal handler. JVM_handle_bsd_signal(sig, info, uc, true); errno = orig_errno; } --- 2771,2781 ---- // extern "C" JNIEXPORT int JVM_handle_bsd_signal(int signo, siginfo_t* siginfo, void* ucontext, int abort_if_unrecognized); ! static void signalHandler(int sig, siginfo_t* info, void* uc) { assert(info != NULL && uc != NULL, "it must be old kernel"); int orig_errno = errno; // Preserve errno value over signal handler. JVM_handle_bsd_signal(sig, info, uc, true); errno = orig_errno; }
*** 3299,3308 **** --- 3299,3312 ---- return JNI_ERR; } Bsd::signal_sets_init(); Bsd::install_signal_handlers(); + // Initialize data for jdk.internal.misc.Signal + if (!ReduceSignalUsage) { + jdk_misc_signal_init(); + } // Check and sets minimum stack sizes against command line options if (Posix::set_minimum_stack_sizes() == JNI_ERR) { return JNI_ERR; }
< prev index next >