* Connection structures and accounting...
*/
+static void just_die(int sig)
+{
+ clean_child_exit(0);
+}
+
static void please_die_gracefully(int sig)
{
/* clean_child_exit(0); */
(void) ap_update_child_status(AP_CHILD_THREAD_FROM_ID(my_child_num), SERVER_READY, (request_rec *) NULL);
apr_signal(SIGHUP, please_die_gracefully);
- apr_signal(SIGTERM, please_die_gracefully);
ap_sync_scoreboard_image();
while (!I_AM_TO_SHUTDOWN()) {
* we can exit cleanly.
*/
apr_signal(SIGWINCH, please_die_gracefully);
+ apr_signal(SIGTERM, just_die);
/*
* (Re)initialize this child to a pre-connection state.
/* if we accept() something we don't want to die, so we have to
* defer the exit
*/
+ apr_signal(SIGTERM, please_die_gracefully);
for (;;) {
ap_sync_scoreboard_image();
if (I_AM_TO_SHUTDOWN()) {
#ifdef SIGQUIT
apr_signal(SIGQUIT, SIG_DFL);
#endif
- apr_signal(SIGTERM, please_die_gracefully);
+ apr_signal(SIGTERM, just_die);
ap_scoreboard_image->servers[slot][0].life_status = SB_WORKING;
child_main(slot);
}
*/
apr_signal(SIGHUP, please_die_gracefully);
apr_signal(SIGWINCH, please_die_gracefully);
- apr_signal(SIGTERM, please_die_gracefully);
+ apr_signal(SIGTERM, just_die);
ap_scoreboard_image->servers[slot][0].life_status = SB_WORKING;
child_main(slot);
}