static void fpm_worker_pool_cleanup(int which, void *arg) /* {{{ */ { struct fpm_worker_pool_s *wp, *wp_next; for (wp = fpm_worker_all_pools; wp; wp = wp_next) { wp_next = wp->next; fpm_worker_pool_config_free(wp->config); fpm_children_free(wp->children); if ((which & FPM_CLEANUP_CHILD) == 0 && fpm_globals.parent_pid == getpid()) { fpm_scoreboard_free(wp->scoreboard); } fpm_worker_pool_free(wp); } fpm_worker_all_pools = NULL; }
static void fpm_worker_pool_cleanup(int which, void *arg) /* {{{ */ { struct fpm_worker_pool_s *wp, *wp_next; for (wp = fpm_worker_all_pools; wp; wp = wp_next) { wp_next = wp->next; fpm_worker_pool_config_free(wp->config); fpm_children_free(wp->children); fpm_array_free(&wp->slots_used); fpm_array_free(&wp->slots_free); fpm_shm_free_list(wp->shm_list, which == FPM_CLEANUP_CHILD ? fpm_shm_slots_mem() : 0); if (wp->shm_status && which != FPM_CLEANUP_CHILD) { fpm_shm_free(wp->shm_status, !fpm_globals.is_child); } free(wp->config); free(wp->user); free(wp->home); free(wp); } fpm_worker_all_pools = 0; }