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