http://bugs.python.org/issue6381
merging revision 73819 from trunk
diff --git a/Lib/socketserver.py b/Lib/socketserver.py
index e5f5778..37df2ba 100644
--- a/Lib/socketserver.py
+++ b/Lib/socketserver.py
@@ -445,7 +445,12 @@
def close_request(self, request):
"""Called to clean up an individual request."""
- request.shutdown(socket.SHUT_WR)
+ try:
+ #explicitly shutdown. socket.close() merely releases
+ #the socket and waits for GC to perform the actual close.
+ request.shutdown(socket.SHUT_WR)
+ except socket.error:
+ pass #some platforms may raise ENOTCONN here
request.close()
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index cac90f4..8986741 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -182,6 +182,8 @@
"under Windows, test would generate a spurious crash dialog")
code = textwrap.dedent("""
import sys
+ import msvcrt
+ msvcrt.SetErrorMode(msvcrt.SEM_FAILCRITICALERRORS)
def f():
try: