summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Saddi <allan@saddi.com>2009-08-17 12:42:43 -0700
committerAllan Saddi <allan@saddi.com>2009-08-17 12:42:43 -0700
commit90a38f2d6d156600bf73314986c5ff7d0960095d (patch)
tree8045a4629febbf62a486aa387f6d1717b96d715a
parent012f34a4dad6589d8b43f234e07d508fb80ef1a2 (diff)
downloadflup-90a38f2d6d156600bf73314986c5ff7d0960095d.tar.gz
Restore check of the absolute number of children against maxSpare and
document rationale.
-rw-r--r--flup/server/preforkserver.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/flup/server/preforkserver.py b/flup/server/preforkserver.py
index b7b2ff1..4c50e8c 100644
--- a/flup/server/preforkserver.py
+++ b/flup/server/preforkserver.py
@@ -126,8 +126,12 @@ class PreforkServer(object):
# Main loop.
while self._keepGoing:
- # Maintain minimum number of children.
- while len(self._children) < self._minSpare:
+ # Maintain minimum number of children. Note that we are checking
+ # the absolute number of children, not the number of "available"
+ # children. We explicitly test against _maxSpare to maintain
+ # an *optimistic* absolute minimum. The number of children will
+ # always be in the range [_maxSpare, _maxChildren].
+ while len(self._children) < self._maxSpare:
if not self._spawnChild(sock): break
# Wait on any socket activity from live children.