[Zope-Checkins] SVN: Zope/branches/2.9/ Collector #1904: On Mac OS
X avoid a spurious OSError when zopectl
Florent Guillaume
fg at nuxeo.com
Mon Dec 5 11:50:15 EST 2005
Log message for revision 40547:
Collector #1904: On Mac OS X avoid a spurious OSError when zopectl
exits.
Changed:
U Zope/branches/2.9/doc/CHANGES.txt
U Zope/branches/2.9/lib/python/Zope2/Startup/zopectl.py
-=-
Modified: Zope/branches/2.9/doc/CHANGES.txt
===================================================================
--- Zope/branches/2.9/doc/CHANGES.txt 2005-12-05 16:34:38 UTC (rev 40546)
+++ Zope/branches/2.9/doc/CHANGES.txt 2005-12-05 16:50:14 UTC (rev 40547)
@@ -104,3 +104,6 @@
- Switched to the new improved test runner from Zope 3. Run
test.py with -h to find out more.
+
+ - Collector #1904: On Mac OS X avoid a spurious OSError when
+ zopectl exits.
Modified: Zope/branches/2.9/lib/python/Zope2/Startup/zopectl.py
===================================================================
--- Zope/branches/2.9/lib/python/Zope2/Startup/zopectl.py 2005-12-05 16:34:38 UTC (rev 40546)
+++ Zope/branches/2.9/lib/python/Zope2/Startup/zopectl.py 2005-12-05 16:50:14 UTC (rev 40547)
@@ -304,5 +304,13 @@
# If it is not reset, 'os.wait[pid]' can non-deterministically fail.
# Thus, use a way such that "SIGCHLD" is definitely reset in children.
#signal.signal(signal.SIGCHLD, signal.SIG_IGN)
- signal.signal(signal.SIGCHLD, _ignoreSIGCHLD)
+ if os.uname()[0] != 'Darwin':
+ # On Mac OS X, setting up a signal handler causes waitpid to
+ # raise EINTR, which is not preventable via the Python signal
+ # handler API and can't be dealt with properly as we can't pass
+ # the SA_RESTART to the signal API. Since Mac OS X doesn't
+ # appear to clutter up the process table with zombies if
+ # SIGCHILD is unset, just don't bother registering a SIGCHILD
+ # signal handler at all.
+ signal.signal(signal.SIGCHLD, _ignoreSIGCHLD)
main()
More information about the Zope-Checkins
mailing list