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