xref: /PHP-7.1/sapi/fpm/fpm/fpm_worker_pool.h (revision 03f3b847)
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