In collect_children(), put a try-except around os.waitpid() because it
may raise an exception (when there are no children). Reported by
Andy Dustman.
diff --git a/Lib/SocketServer.py b/Lib/SocketServer.py
index 1ede68d..82bc8fb 100644
--- a/Lib/SocketServer.py
+++ b/Lib/SocketServer.py
@@ -285,7 +285,10 @@
def collect_children(self):
"""Internal routine to wait for died children."""
while self.active_children:
- pid, status = os.waitpid(0, os.WNOHANG)
+ try:
+ pid, status = os.waitpid(0, os.WNOHANG)
+ except os.error:
+ pid = None
if not pid: break
self.active_children.remove(pid)