summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristján Valur Jónsson <kristjan@ccpgames.com>2009-07-04 15:09:25 (GMT)
committerKristján Valur Jónsson <kristjan@ccpgames.com>2009-07-04 15:09:25 (GMT)
commit8c4f4178cbd22b49c19f56baa0b305cbb64b9e94 (patch)
tree516713e2c2ac59691d26bac2a20f1fb3708c9efa
parent04cecafce10abc8906a96aa16c0a7a87d9fb8227 (diff)
downloadcpython-8c4f4178cbd22b49c19f56baa0b305cbb64b9e94.zip
cpython-8c4f4178cbd22b49c19f56baa0b305cbb64b9e94.tar.gz
cpython-8c4f4178cbd22b49c19f56baa0b305cbb64b9e94.tar.bz2
http://bugs.python.org/issue6381
merging revision 73819 from trunk
-rw-r--r--Lib/socketserver.py7
-rw-r--r--Lib/test/test_sys.py2
-rw-r--r--Modules/_multiprocessing/win32_functions.c6
3 files changed, 8 insertions, 7 deletions
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 @@ class TCPServer(BaseServer):
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 @@ class SysModuleTest(unittest.TestCase):
"under Windows, test would generate a spurious crash dialog")
code = textwrap.dedent("""
import sys
+ import msvcrt
+ msvcrt.SetErrorMode(msvcrt.SEM_FAILCRITICALERRORS)
def f():
try:
diff --git a/Modules/_multiprocessing/win32_functions.c b/Modules/_multiprocessing/win32_functions.c
index ba82c23..379a495 100644
--- a/Modules/_multiprocessing/win32_functions.c
+++ b/Modules/_multiprocessing/win32_functions.c
@@ -130,12 +130,6 @@ win32_ExitProcess(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "I", &uExitCode))
return NULL;
- #if defined(Py_DEBUG)
- SetErrorMode(SEM_FAILCRITICALERRORS|SEM_NOALIGNMENTFAULTEXCEPT|SEM_NOGPFAULTERRORBOX|SEM_NOOPENFILEERRORBOX);
- _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_DEBUG);
- #endif
-
-
ExitProcess(uExitCode);
return NULL;