[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