}
/* do a graceful restart if graceful == 1 */
-void ap_start_restart(int graceful)
+static void ap_start_restart(int graceful)
{
if (restart_pending == 1) {
}
restart_pending = 1;
is_graceful = graceful;
+ if (is_graceful) {
+ ap_kill_cleanup(pconf, NULL, ap_cleanup_shared_mem);
+ }
}
static void sig_term(int sig)
static ap_shmem_t *scoreboard_shm = NULL;
-static ap_status_t cleanup_shared_mem(void *d)
+ap_status_t ap_cleanup_shared_mem(void *d)
{
ap_shm_free(scoreboard_shm, ap_scoreboard_image);
ap_scoreboard_image = NULL;
ap_shm_destroy(scoreboard_shm);
exit(APEXIT_INIT);
}
- ap_register_cleanup(p, NULL, cleanup_shared_mem, ap_null_cleanup);
+ ap_register_cleanup(p, NULL, ap_cleanup_shared_mem, ap_null_cleanup);
}
void reinit_scoreboard(ap_pool_t *p)
API_VAR_EXPORT extern const char *ap_scoreboard_fname;
+ap_status_t ap_cleanup_shared_mem(void *d);
+
#ifdef __cplusplus
}
#endif
#define PERCHILD_MPM
#define MPM_NEEDS_RECLAIM_CHILD_PROCESSES 1
-#define MPM_SYNC_CHILD_TABLE() (ap_sync_scoreboard_image())
+#define MPM_SYNC_CHILD_TABLE()
#define MPM_CHILD_PID(i) (ap_child_table[i].pid)
#define MPM_NOTE_CHILD_KILLED(i) (MPM_CHILD_PID(i) = 0)
}
/* do a graceful restart if graceful == 1 */
-void ap_start_restart(int graceful)
+static void ap_start_restart(int graceful)
{
if (restart_pending == 1) {
}
restart_pending = 1;
is_graceful = graceful;
+ if (is_graceful) {
+ ap_kill_cleanup(pconf, NULL, ap_cleanup_shared_mem);
+ }
}
static void sig_term(int sig)
}
/* do a graceful restart if graceful == 1 */
-void ap_start_restart(int graceful)
+static void ap_start_restart(int graceful)
{
if (restart_pending == 1) {
}
restart_pending = 1;
is_graceful = graceful;
+ if (is_graceful) {
+ ap_kill_cleanup(pconf, NULL, ap_cleanup_shared_mem);
+ }
}
static void sig_term(int sig)
static ap_shmem_t *scoreboard_shm = NULL;
-static ap_status_t cleanup_shared_mem(void *d)
+ap_status_t ap_cleanup_shared_mem(void *d)
{
ap_shm_free(scoreboard_shm, ap_scoreboard_image);
ap_scoreboard_image = NULL;
ap_shm_destroy(scoreboard_shm);
exit(APEXIT_INIT);
}
- ap_register_cleanup(p, NULL, cleanup_shared_mem, ap_null_cleanup);
+ ap_register_cleanup(p, NULL, ap_cleanup_shared_mem, ap_null_cleanup);
ap_scoreboard_image->global.running_generation = 0;
}
API_EXPORT(int) ap_exists_scoreboard_image(void);
void reinit_scoreboard(ap_pool_t *p);
-void cleanup_scoreboard(void);
+ap_status_t ap_cleanup_shared_mem(void *d);
API_EXPORT(void) ap_sync_scoreboard_image(void);
void ap_mpmt_pthread_force_reset_connection_status(long conn_id);
#define PERCHILD_MPM
#define MPM_NEEDS_RECLAIM_CHILD_PROCESSES 1
-#define MPM_SYNC_CHILD_TABLE() (ap_sync_scoreboard_image())
+#define MPM_SYNC_CHILD_TABLE()
#define MPM_CHILD_PID(i) (ap_child_table[i].pid)
#define MPM_NOTE_CHILD_KILLED(i) (MPM_CHILD_PID(i) = 0)
}
/* do a graceful restart if graceful == 1 */
-void ap_start_restart(int graceful)
+static void ap_start_restart(int graceful)
{
if (restart_pending == 1) {
}
restart_pending = 1;
is_graceful = graceful;
+ if (is_graceful) {
+ ap_kill_cleanup(pconf, NULL, ap_cleanup_shared_mem);
+ }
}
static void sig_term(int sig)
static ap_shmem_t *scoreboard_shm = NULL;
-static ap_status_t cleanup_shared_mem(void *d)
+ap_status_t ap_cleanup_shared_mem(void *d)
{
ap_shm_free(scoreboard_shm, ap_scoreboard_image);
ap_scoreboard_image = NULL;
ap_shm_destroy(scoreboard_shm);
exit(APEXIT_INIT);
}
- ap_register_cleanup(p, NULL, cleanup_shared_mem, ap_null_cleanup);
+ ap_register_cleanup(p, NULL, ap_cleanup_shared_mem, ap_null_cleanup);
}
void reinit_scoreboard(ap_pool_t *p)
#define SCOREBOARD_SIZE sizeof(scoreboard)
API_VAR_EXPORT extern const char *ap_scoreboard_fname;
+ap_status_t ap_cleanup_shared_mem(void *d);
#ifdef __cplusplus
}