[Checkins] SVN: Sandbox/J1m/resumelb/src/zc/resumelb/worker.py Added thread-pool support.

Jim Fulton jim at zope.com
Sun Jan 15 18:41:46 UTC 2012


Log message for revision 124052:
  Added thread-pool support.
  
  XXX need unit test. Tested informally via simul.
  

Changed:
  U   Sandbox/J1m/resumelb/src/zc/resumelb/worker.py

-=-
Modified: Sandbox/J1m/resumelb/src/zc/resumelb/worker.py
===================================================================
--- Sandbox/J1m/resumelb/src/zc/resumelb/worker.py	2012-01-15 18:41:44 UTC (rev 124051)
+++ Sandbox/J1m/resumelb/src/zc/resumelb/worker.py	2012-01-15 18:41:45 UTC (rev 124052)
@@ -9,6 +9,7 @@
 import time
 import zc.mappingobject
 import zc.resumelb.util
+import zc.resumelb.thread
 
 logger = logging.getLogger(__name__)
 
@@ -20,6 +21,13 @@
         self.resume = {}
         self.time_ring = []
         self.time_ring_pos = 0
+
+        if settings.get('threads'):
+            pool = zc.resumelb.thread.Pool(self.settings.threads)
+            self.apply = pool.apply
+        else:
+            self.apply = lambda f, *a: f(*a)
+
         while 1:
             try:
                 self.connect(addr)
@@ -73,7 +81,7 @@
             self.put((rno, (status, headers)))
 
         try:
-            for data in self.app(env, start_response):
+            for data in self.apply(self.app, env, start_response):
                 self.put((rno, data))
 
             self.put((rno, ''))



More information about the checkins mailing list