Exemplo n.º 1
0
void fpm_scoreboard_free(struct fpm_scoreboard_s *scoreboard) /* {{{ */
{
	int i;

	if (!scoreboard) {
		zlog(ZLOG_ERROR, "**scoreboard is NULL");
		return;
	}

	for (i = 0; i < scoreboard->nprocs; i++) {
		if (!scoreboard->procs[i]) {
			continue;
		}
		fpm_shm_free(scoreboard->procs[i], sizeof(struct fpm_scoreboard_proc_s));
	}
	fpm_shm_free(scoreboard, sizeof(struct fpm_scoreboard_s));
}
Exemplo n.º 2
0
void fpm_scoreboard_free(struct fpm_scoreboard_s *scoreboard) /* {{{ */
{
	size_t scoreboard_size, scoreboard_nprocs_size;

	if (!scoreboard) {
		zlog(ZLOG_ERROR, "**scoreboard is NULL");
		return;
	}

	scoreboard_size        = sizeof(struct fpm_scoreboard_s) + (scoreboard->nprocs) * sizeof(struct fpm_scoreboard_proc_s *);
	scoreboard_nprocs_size = sizeof(struct fpm_scoreboard_proc_s) * scoreboard->nprocs;

	fpm_shm_free(scoreboard, scoreboard_size + scoreboard_nprocs_size);
}
Exemplo n.º 3
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);
        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;
}