< prev index next >

src/hotspot/os/aix/os_aix.cpp

Print this page

        

@@ -2994,12 +2994,10 @@
 // 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 sigact[NSIG];
-sigset_t sigs;
 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) {

@@ -3009,11 +3007,11 @@
     // Retrieve the old signal handler from libjsig
     actp = (*get_signal_action)(sig);
   }
   if (actp == NULL) {
     // Retrieve the preinstalled signal handler from jvm
-    actp = get_preinstalled_handler(sig);
+    actp = os::Posix::get_preinstalled_handler(sig);
   }
 
   return actp;
 }
 

@@ -3072,23 +3070,10 @@
     }
   }
   return chained;
 }
 
-struct sigaction* os::Aix::get_preinstalled_handler(int sig) {
-  if (sigismember(&sigs, sig)) {
-    return &sigact[sig];
-  }
-  return NULL;
-}
-
-void os::Aix::save_preinstalled_handler(int sig, struct sigaction& oldAct) {
-  assert(sig > 0 && sig < NSIG, "vm signal out of expected range");
-  sigact[sig] = oldAct;
-  sigaddset(&sigs, sig);
-}
-
 // for diagnostic
 int sigflags[NSIG];
 
 int os::Aix::get_our_sigflags(int sig) {
   assert(sig > 0 && sig < NSIG, "vm signal out of expected range");

@@ -3116,11 +3101,11 @@
     if (AllowUserSignalHandlers || !set_installed) {
       // Do not overwrite; user takes responsibility to forward to us.
       return;
     } else if (UseSignalChaining) {
       // save the old handler in jvm
-      save_preinstalled_handler(sig, oldAct);
+      os::Posix::save_preinstalled_handler(sig, oldAct);
       // libjsig also interposes the sigaction() call below and saves the
       // old sigaction on it own.
     } else {
       fatal("Encountered unexpected pre-existing sigaction handler "
             "%#lx for signal %d.", (long)oldhand, sig);

@@ -3172,11 +3157,10 @@
     if (libjsig_is_loaded) {
       // Tell libjsig jvm is setting signal handlers.
       (*begin_signal_setting)();
     }
 
-    ::sigemptyset(&sigs);
     set_signal_handler(SIGSEGV, true);
     set_signal_handler(SIGPIPE, true);
     set_signal_handler(SIGBUS, true);
     set_signal_handler(SIGILL, true);
     set_signal_handler(SIGFPE, true);
< prev index next >