[Zope-Checkins] SVN: Zope/branches/Zope-2_8-branch/ Merged r40547
from 2.9 branch:
Florent Guillaume
fg at nuxeo.com
Tue Dec 6 05:14:16 EST 2005
Log message for revision 40583:
Merged r40547 from 2.9 branch:
Collector #1904: On Mac OS X avoid a spurious OSError when zopectl exits.
Changed:
U Zope/branches/Zope-2_8-branch/doc/CHANGES.txt
U Zope/branches/Zope-2_8-branch/lib/python/Zope2/Startup/zopectl.py
-=-
Modified: Zope/branches/Zope-2_8-branch/doc/CHANGES.txt
===================================================================
--- Zope/branches/Zope-2_8-branch/doc/CHANGES.txt 2005-12-06 10:03:25 UTC (rev 40582)
+++ Zope/branches/Zope-2_8-branch/doc/CHANGES.txt 2005-12-06 10:14:16 UTC (rev 40583)
@@ -26,6 +26,9 @@
Bugs Fixed
+ - Collector #1904: On Mac OS X avoid a spurious OSError when
+ zopectl exits.
+
- CopySupport: Reverted workaround in '_verifyObjectPaste'.
'checkPermission' now respects proxy roles, so the warkaround
introduced to fix http://www.zope.org/Collectors/Zope/78 is no longer
Modified: Zope/branches/Zope-2_8-branch/lib/python/Zope2/Startup/zopectl.py
===================================================================
--- Zope/branches/Zope-2_8-branch/lib/python/Zope2/Startup/zopectl.py 2005-12-06 10:03:25 UTC (rev 40582)
+++ Zope/branches/Zope-2_8-branch/lib/python/Zope2/Startup/zopectl.py 2005-12-06 10:14:16 UTC (rev 40583)
@@ -310,5 +310,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