[Checkins] SVN: zope.app.server/trunk/ Removed the use of ThreadedAsync, which is going away.

Jim Fulton jim at zope.com
Mon Feb 25 15:17:11 EST 2008


Log message for revision 84242:
  Removed the use of ThreadedAsync, which is going away.
  
  Fixed restart.
  

Changed:
  U   zope.app.server/trunk/CHANGES.txt
  U   zope.app.server/trunk/src/zope/app/server/main.py
  U   zope.app.server/trunk/src/zope/app/server/servercontrol.py

-=-
Modified: zope.app.server/trunk/CHANGES.txt
===================================================================
--- zope.app.server/trunk/CHANGES.txt	2008-02-25 20:17:09 UTC (rev 84241)
+++ zope.app.server/trunk/CHANGES.txt	2008-02-25 20:17:10 UTC (rev 84242)
@@ -2,6 +2,14 @@
 CHANGES
 =======
 
+3.4.1 (2008-02-25)
+------------------
+
+- Fixed restart so that the process exits with a non-zero exit status
+  so it gets restarted by zdaemon, or an equivalent mechanism.
+
+- Removed the use of ThreadedAsync.
+
 3.4.0 (2007-10-27)
 ------------------
 

Modified: zope.app.server/trunk/src/zope/app/server/main.py
===================================================================
--- zope.app.server/trunk/src/zope/app/server/main.py	2008-02-25 20:17:09 UTC (rev 84241)
+++ zope.app.server/trunk/src/zope/app/server/main.py	2008-02-25 20:17:10 UTC (rev 84242)
@@ -15,6 +15,7 @@
 
 $Id$
 """
+import asyncore
 import logging
 import os
 import sys
@@ -22,8 +23,6 @@
 
 from zdaemon import zdoptions
 
-import ThreadedAsync
-
 import zope.app.appsetup.appsetup
 import zope.app.appsetup.interfaces
 import zope.app.appsetup.product
@@ -47,6 +46,8 @@
         return None
 
 
+
+exit_status = None
 def main(args=None):
     # Record start times (real time and CPU time)
     t0 = time.time()
@@ -59,7 +60,7 @@
     logging.info("Startup time: %.3f sec real, %.3f sec CPU", t1-t0, c1-c0)
 
     run()
-    sys.exit(0)
+    sys.exit(exit_status or 0)
 
 
 def debug(args=None):
@@ -77,12 +78,14 @@
 
 def run():
     try:
-        ThreadedAsync.loop()
+        global exit_status
+        while asyncore.socket_map and exit_status is None:
+            asyncore.poll(30.0)
     except KeyboardInterrupt:
         # Exit without spewing an exception.
         pass
+    
 
-
 def load_options(args=None):
     if args is None:
         args = sys.argv[1:]

Modified: zope.app.server/trunk/src/zope/app/server/servercontrol.py
===================================================================
--- zope.app.server/trunk/src/zope/app/server/servercontrol.py	2008-02-25 20:17:09 UTC (rev 84241)
+++ zope.app.server/trunk/src/zope/app/server/servercontrol.py	2008-02-25 20:17:10 UTC (rev 84242)
@@ -15,10 +15,12 @@
 
 $Id$
 """
-from ThreadedAsync import LoopCallback
+
 from zope.app.applicationcontrol.interfaces import IServerControl
 from zope.interface import implements
 
+import zope.app.server.main
+
 class ServerControl(object):
 
     implements(IServerControl)
@@ -29,7 +31,7 @@
 
         # This will work for servers started directly and by zdaemon. Passing
         # an exit status of 0 causes zdaemon to not restart the process.
-        LoopCallback.exit_status = 0
+        zope.app.server.main.exit_status = 0
 
     def restart(self, time=0):
         """See zope.app.applicationcontrol.interfaces.IServerControl"""
@@ -38,7 +40,7 @@
         # TODO: Make sure this is only called if we are running via zdaemon.
 
         # Passing an exit status of 1 causes zdaemon to restart the process.
-        LoopCallback.exit_status = 1
+        zope.app.server.main.exit_status = 1
         
 
 serverControl = ServerControl()



More information about the Checkins mailing list