src/hotspot/os/solaris/os_solaris.cpp
changeset 50184 1a4101ebec92
parent 50178 7b0291382aff
child 50429 83aec1d357d4
equal deleted inserted replaced
50183:4befb3c9c758 50184:1a4101ebec92
  2122   }
  2122   }
  2123   ourSigFlags = (int*)malloc(sizeof(int) * (Maxsignum + 1), mtInternal);
  2123   ourSigFlags = (int*)malloc(sizeof(int) * (Maxsignum + 1), mtInternal);
  2124   memset(ourSigFlags, 0, sizeof(int) * (Maxsignum + 1));
  2124   memset(ourSigFlags, 0, sizeof(int) * (Maxsignum + 1));
  2125 }
  2125 }
  2126 
  2126 
  2127 void os::signal_init_pd() {
  2127 static void jdk_misc_signal_init() {
  2128   // Initialize signal semaphore
  2128   // Initialize signal semaphore
  2129   sig_sem = new Semaphore();
  2129   sig_sem = new Semaphore();
  2130 }
  2130 }
  2131 
  2131 
  2132 void os::signal_notify(int sig) {
  2132 void os::signal_notify(int sig) {
  2133   if (sig_sem != NULL) {
  2133   if (sig_sem != NULL) {
  2134     Atomic::inc(&pending_signals[sig]);
  2134     Atomic::inc(&pending_signals[sig]);
  2135     sig_sem->signal();
  2135     sig_sem->signal();
  2136   } else {
  2136   } else {
  2137     // Signal thread is not created with ReduceSignalUsage and signal_init_pd
  2137     // Signal thread is not created with ReduceSignalUsage and jdk_misc_signal_init
  2138     // initialization isn't called.
  2138     // initialization isn't called.
  2139     assert(ReduceSignalUsage, "signal semaphore should be created");
  2139     assert(ReduceSignalUsage, "signal semaphore should be created");
  2140   }
  2140   }
  2141 }
  2141 }
  2142 
  2142 
  4241   }
  4241   }
  4242 
  4242 
  4243   Solaris::signal_sets_init();
  4243   Solaris::signal_sets_init();
  4244   Solaris::init_signal_mem();
  4244   Solaris::init_signal_mem();
  4245   Solaris::install_signal_handlers();
  4245   Solaris::install_signal_handlers();
       
  4246   // Initialize data for jdk.internal.misc.Signal
       
  4247   if (!ReduceSignalUsage) {
       
  4248     jdk_misc_signal_init();
       
  4249   }
  4246 
  4250 
  4247   // initialize synchronization primitives to use either thread or
  4251   // initialize synchronization primitives to use either thread or
  4248   // lwp synchronization (controlled by UseLWPSynchronization)
  4252   // lwp synchronization (controlled by UseLWPSynchronization)
  4249   Solaris::synchronization_init();
  4253   Solaris::synchronization_init();
  4250 
  4254