summaryrefslogtreecommitdiff
path: root/sapi
diff options
context:
space:
mode:
authorJérôme Loyet <fat@php.net>2011-07-17 14:28:31 +0000
committerJérôme Loyet <fat@php.net>2011-07-17 14:28:31 +0000
commit66dd371c433e86c6b6f95c390faa02dafbafc475 (patch)
tree3faecea661eac54ae11422a325eb75bb8da75aa1 /sapi
parentcc1ccefc0dc62b1736ac08a78dd7d614e912eb0c (diff)
downloadphp-git-66dd371c433e86c6b6f95c390faa02dafbafc475.tar.gz
fix revision r313323
Diffstat (limited to 'sapi')
-rw-r--r--sapi/fpm/fpm/fpm.h1
-rw-r--r--sapi/fpm/fpm/fpm_children.c11
-rw-r--r--sapi/fpm/fpm/fpm_conf.c1
3 files changed, 9 insertions, 4 deletions
diff --git a/sapi/fpm/fpm/fpm.h b/sapi/fpm/fpm/fpm.h
index bfe2be8d1e..3c6f798fba 100644
--- a/sapi/fpm/fpm/fpm.h
+++ b/sapi/fpm/fpm/fpm.h
@@ -24,7 +24,6 @@ struct fpm_globals_s {
int max_requests; /* for this child */
int is_child;
int test_successful;
- int process_max; /* global */
};
extern struct fpm_globals_s fpm_globals;
diff --git a/sapi/fpm/fpm/fpm_children.c b/sapi/fpm/fpm/fpm_children.c
index fbe9d980d8..769c519a85 100644
--- a/sapi/fpm/fpm/fpm_children.c
+++ b/sapi/fpm/fpm/fpm_children.c
@@ -375,7 +375,14 @@ int fpm_children_make(struct fpm_worker_pool_s *wp, int in_event_loop, int nb_to
max = wp->config->pm_max_children;
}
- while (fpm_pctl_can_spawn_children() && wp->running_children < max && fpm_globals.running_children < fpm_global_config.process_max) {
+ /*
+ * fork children while:
+ * - fpm_pctl_can_spawn_children : FPM is running in a NORMAL state (aka not restart, stop or reload)
+ * - wp->running_children < max : there is less than the max process for the current pool
+ * - (fpm_global_config.process_max < 1 || fpm_globals.running_children < fpm_global_config.process_max):
+ * if fpm_global_config.process_max is set, FPM has not fork this number of processes (globaly)
+ */
+ while (fpm_pctl_can_spawn_children() && wp->running_children < max && (fpm_global_config.process_max < 1 || fpm_globals.running_children < fpm_global_config.process_max)) {
warned = 0;
child = fpm_resources_prepare(wp);
@@ -410,7 +417,7 @@ int fpm_children_make(struct fpm_worker_pool_s *wp, int in_event_loop, int nb_to
}
- if (!warned && fpm_globals.running_children >= fpm_global_config.process_max) {
+ if (!warned && fpm_global_config.process_max > 0 && fpm_globals.running_children >= fpm_global_config.process_max) {
warned = 1;
zlog(ZLOG_WARNING, "The maximum number of processes has been reached. Please review your configuration and consider raising 'process.max'");
}
diff --git a/sapi/fpm/fpm/fpm_conf.c b/sapi/fpm/fpm/fpm_conf.c
index 755346fa6f..edb514f1be 100644
--- a/sapi/fpm/fpm/fpm_conf.c
+++ b/sapi/fpm/fpm/fpm_conf.c
@@ -1020,7 +1020,6 @@ static int fpm_conf_post_process(TSRMLS_D) /* {{{ */
zlog(ZLOG_ERROR, "process_max can't be negative");
return -1;
}
- fpm_globals.process_max = fpm_global_config.process_max;
if (!fpm_global_config.error_log) {
fpm_global_config.error_log = strdup("log/php-fpm.log");