xref: /php-src/sapi/fpm/fpm/fpm_process_ctl.h (revision abd56aeb)
1 	/* (c) 2007,2008 Andrei Nigmatulin */
2 
3 #ifndef FPM_PROCESS_CTL_H
4 #define FPM_PROCESS_CTL_H 1
5 
6 #include "fpm_events.h"
7 
8 /* 1s (in ms) heartbeat for idle server maintenance */
9 #define FPM_IDLE_SERVER_MAINTENANCE_HEARTBEAT (1000)
10 /* a minimum of 130ms heartbeat for pctl */
11 #define FPM_PCTL_MIN_HEARTBEAT (130)
12 
13 
14 struct fpm_child_s;
15 
16 void fpm_pctl(int new_state, int action);
17 int fpm_pctl_can_spawn_children(void);
18 int fpm_pctl_kill(pid_t pid, int how);
19 void fpm_pctl_kill_all(int signo);
20 void fpm_pctl_heartbeat(struct fpm_event_s *ev, short which, void *arg);
21 void fpm_pctl_perform_idle_server_maintenance_heartbeat(struct fpm_event_s *ev, short which, void *arg);
22 void fpm_pctl_on_socket_accept(struct fpm_event_s *ev, short which, void *arg);
23 int fpm_pctl_child_exited(void);
24 int fpm_pctl_init_main(void);
25 
26 
27 enum {
28 	FPM_PCTL_STATE_UNSPECIFIED,
29 	FPM_PCTL_STATE_NORMAL,
30 	FPM_PCTL_STATE_RELOADING,
31 	FPM_PCTL_STATE_TERMINATING,
32 	FPM_PCTL_STATE_FINISHING
33 };
34 
35 enum {
36 	FPM_PCTL_ACTION_SET,
37 	FPM_PCTL_ACTION_TIMEOUT,
38 	FPM_PCTL_ACTION_LAST_CHILD_EXITED
39 };
40 
41 enum {
42 	FPM_PCTL_TERM,
43 	FPM_PCTL_STOP,
44 	FPM_PCTL_CONT,
45 	FPM_PCTL_QUIT,
46 	FPM_PCTL_KILL
47 };
48 
49 #endif
50