Exemple #1
0
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;
}