1 /* (c) 2007,2008 Andrei Nigmatulin */ 2 3 #ifndef FPM_WORKER_POOL_H 4 #define FPM_WORKER_POOL_H 1 5 6 #include "fpm_conf.h" 7 #include "fpm_shm.h" 8 9 struct fpm_worker_pool_s; 10 struct fpm_child_s; 11 struct fpm_child_stat_s; 12 struct fpm_shm_s; 13 14 enum fpm_address_domain { 15 FPM_AF_UNIX = 1, 16 FPM_AF_INET = 2 17 }; 18 19 struct fpm_worker_pool_s { 20 struct fpm_worker_pool_s *next; 21 struct fpm_worker_pool_config_s *config; 22 char *user, *home; /* for setting env USER and HOME */ 23 enum fpm_address_domain listen_address_domain; 24 int listening_socket; 25 int set_uid, set_gid; /* config uid and gid */ 26 int socket_uid, socket_gid, socket_mode; 27 28 /* runtime */ 29 struct fpm_child_s *children; 30 int running_children; 31 int idle_spawn_rate; 32 int warn_max_children; 33 #if 0 34 int warn_lq; 35 #endif 36 struct fpm_scoreboard_s *scoreboard; 37 int log_fd; 38 char **limit_extensions; 39 40 /* for ondemand PM */ 41 struct fpm_event_s *ondemand_event; 42 int socket_event_set; 43 44 #ifdef HAVE_FPM_ACL 45 void *socket_acl; 46 #endif 47 }; 48 49 struct fpm_worker_pool_s *fpm_worker_pool_alloc(); 50 void fpm_worker_pool_free(struct fpm_worker_pool_s *wp); 51 int fpm_worker_pool_init_main(); 52 53 void fpm_worker_pool_free_limit_extensions(char **limit_extensions); 54 55 extern struct fpm_worker_pool_s *fpm_worker_all_pools; 56 57 #endif 58