summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Saddi <allan@saddi.com>2009-10-27 09:24:05 -0700
committerAllan Saddi <allan@saddi.com>2009-10-27 09:24:05 -0700
commit7d843cd0f4d08cc74dafee9fbb7a521025dacbe6 (patch)
treec5f5739e0f7192c454717f8de4adf9d12cf2ad89
parent066a539a1b65b0f6cf221a96faec9ed3492db80c (diff)
downloadflup-7d843cd0f4d08cc74dafee9fbb7a521025dacbe6.tar.gz
Exit gracefully if a thread cannot be started when adding a new job. #42
-rw-r--r--ChangeLog5
-rw-r--r--flup/server/threadpool.py5
2 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index abb31b0..a181fd7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-10-27 Allan Saddi <allan@saddi.com>
+
+ * Exit gracefully if a thread cannot be started when adding a new
+ job.
+
2009-10-21 Allan Saddi <allan@saddi.com>
* Add configurable timeout (default: no timeout) to be used when the
diff --git a/flup/server/threadpool.py b/flup/server/threadpool.py
index 98d3afe..e3d1bcd 100644
--- a/flup/server/threadpool.py
+++ b/flup/server/threadpool.py
@@ -89,9 +89,12 @@ class ThreadPool(object):
# Maintain minimum number of spares.
while self._idleCount < self._minSpare and \
self._workerCount < self._maxThreads:
+ try:
+ self._start_new_thread()
+ except thread.error:
+ return False
self._workerCount += 1
self._idleCount += 1
- self._start_new_thread()
# Hand off the job.
if self._idleCount or allowQueuing: