From 8c4f4178cbd22b49c19f56baa0b305cbb64b9e94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristj=C3=A1n=20Valur=20J=C3=B3nsson?= Date: Sat, 4 Jul 2009 15:09:25 +0000 Subject: [PATCH] http://bugs.python.org/issue6381 merging revision 73819 from trunk --- Lib/socketserver.py | 7 ++++++- Lib/test/test_sys.py | 2 ++ Modules/_multiprocessing/win32_functions.c | 6 ------ 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Lib/socketserver.py b/Lib/socketserver.py index e5f5778872f..37df2bab33c 100644 --- a/Lib/socketserver.py +++ b/Lib/socketserver.py @@ -445,7 +445,12 @@ def get_request(self): 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 cac90f4dc97..89867417573 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -182,6 +182,8 @@ def test_recursionlimit_fatalerror(self): "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 ba82c23517c..379a49515e3 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;