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