8141529-NSIG-hs-rt Udiff src/os/aix/vm/os_aix.cpp (original) (raw)

< prev index next >

Print this page

rev 9384 : 8141529: Fix handling of _JAVA_SR_SIGNUM


@@ -2767,12 +2767,16 @@ struct sigaction act; char *s; // Get signal number to use for suspend/resume if ((s = ::getenv("_JAVA_SR_SIGNUM")) != 0) { int sig = ::strtol(s, 0, 10);


@@ -2964,12 +2968,12 @@ // This boolean allows users to forward their own non-matching signals // to JVM_handle_aix_signal, harmlessly. bool os::Aix::signal_handlers_are_installed = false;

// For signal-chaining -struct sigaction os::Aix::sigact[MAXSIGNUM]; -unsigned int os::Aix::sigs = 0; +struct sigaction os::Aix::sigact[NSIG]; +sigset_t os::Aix::sigs = { 0 }; bool os::Aix::libjsig_is_loaded = false; typedef struct sigaction *(*get_signal_t)(int); get_signal_t os::Aix::get_signal_action = NULL;

struct sigaction* os::Aix::get_chained_signal_action(int sig) {


@@ -3043,33 +3047,35 @@ } return chained; }

struct sigaction* os::Aix::get_preinstalled_handler(int sig) {

void os::Aix::save_preinstalled_handler(int sig, struct sigaction& oldAct) {

// for diagnostic -int os::Aix::sigflags[MAXSIGNUM]; +int os::Aix::sigflags[NSIG];

int os::Aix::get_our_sigflags(int sig) {

void os::Aix::set_our_sigflags(int sig, int flags) {

void os::Aix::set_signal_handler(int sig, bool set_installed) { // Check for overwrite. struct sigaction oldAct;


@@ -3105,11 +3111,11 @@ // Renamed 'signalHandler' to avoid collision with other shared libs. sigAct.sa_sigaction = javaSignalHandler; sigAct.sa_flags = SA_SIGINFO|SA_RESTART; } // Save flags, which are set by ours

< prev index next >