/* (c) 2007,2008 Andrei Nigmatulin */ #ifndef FPM_WORKER_POOL_H #define FPM_WORKER_POOL_H 1 #include "fpm_conf.h" #include "fpm_shm.h" struct fpm_worker_pool_s; struct fpm_child_s; struct fpm_child_stat_s; struct fpm_shm_s; enum fpm_address_domain { FPM_AF_UNIX = 1, FPM_AF_INET = 2 }; struct fpm_worker_pool_s { struct fpm_worker_pool_s *next; struct fpm_worker_pool_config_s *config; char *user, *home; /* for setting env USER and HOME */ enum fpm_address_domain listen_address_domain; int listening_socket; int set_uid, set_gid; /* config uid and gid */ int socket_uid, socket_gid, socket_mode; /* runtime */ struct fpm_child_s *children; int running_children; int idle_spawn_rate; int warn_max_children; #if 0 int warn_lq; #endif struct fpm_scoreboard_s *scoreboard; int log_fd; char **limit_extensions; /* for ondemand PM */ struct fpm_event_s *ondemand_event; int socket_event_set; #ifdef HAVE_FPM_ACL void *socket_acl; #endif }; struct fpm_worker_pool_s *fpm_worker_pool_alloc(); void fpm_worker_pool_free(struct fpm_worker_pool_s *wp); int fpm_worker_pool_init_main(); void fpm_worker_pool_free_limit_extensions(char **limit_extensions); extern struct fpm_worker_pool_s *fpm_worker_all_pools; #endif