[Zope-Checkins] SVN: Zope/trunk/lib/python/nt_svcutils/service.py
Port from Zope 2.7 branch.
Tim Peters
tim.one at comcast.net
Tue Apr 19 11:52:30 EDT 2005
Log message for revision 30046:
Port from Zope 2.7 branch.
After consulting with Mark Hammond, removed the explicit calls to SvcStop().
That method gets invoked automatically by the services framework when a
stop request is generated. Calling it explicitly too caused the onStop()
method to get called multiple times. At least ZRS's Service subclasses
have onStop() methods that can't be called multiple times without raising
exceptions (they shut things down, and stuff like sockets go away the
first time onStop() gets called).
Changed:
U Zope/trunk/lib/python/nt_svcutils/service.py
-=-
Modified: Zope/trunk/lib/python/nt_svcutils/service.py
===================================================================
--- Zope/trunk/lib/python/nt_svcutils/service.py 2005-04-19 15:05:49 UTC (rev 30045)
+++ Zope/trunk/lib/python/nt_svcutils/service.py 2005-04-19 15:52:29 UTC (rev 30046)
@@ -161,7 +161,7 @@
# XXX why the test before the log message?
if self.backoff_interval > BACKOFF_INITIAL_INTERVAL:
self.info("created process")
- if not (self.run() and self.checkRestart()):
+ if not (self.run() and self.checkRestart()):
break
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
@@ -206,7 +206,7 @@
win32api.TerminateProcess(self.hZope, 3)
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
- # Wait for the redirect thread - it should have died as the remote
+ # Wait for the redirect thread - it should have died as the remote
# process terminated.
# As we are shutting down, we do the join with a little more care,
# reporting progress as we wait (even though we never will <wink>)
@@ -234,7 +234,6 @@
win32event.INFINITE)
if rc == win32event.WAIT_OBJECT_0:
# user sent a stop service request
- self.SvcStop()
keep_running = False
elif rc == win32event.WAIT_OBJECT_0 + 1:
# user did not send a service stop request, but
@@ -261,7 +260,6 @@
# this was an abormal shutdown.
if self.backoff_cumulative > BACKOFF_MAX:
self.error("restarting too frequently; quit")
- self.SvcStop()
return False
self.warning("sleep %s to avoid rapid restarts"
% self.backoff_interval)
@@ -276,7 +274,7 @@
self.backoff_cumulative += self.backoff_interval
self.backoff_interval *= 2
return True
-
+
def createProcessCaptureIO(self, cmd):
hInputRead, hInputWriteTemp = self.newPipe()
hOutReadTemp, hOutWrite = self.newPipe()
@@ -302,7 +300,7 @@
# problematic in general, but should work in the controlled
# circumstances of a service process.
create_flags = win32process.CREATE_NEW_CONSOLE
- info = win32process.CreateProcess(None, cmd, None, None, True,
+ info = win32process.CreateProcess(None, cmd, None, None, True,
create_flags, None, None, si)
# (NOTE: these really aren't necessary for Python - they are closed
# as soon as they are collected)
More information about the Zope-Checkins
mailing list