]> granicus.if.org Git - python/commitdiff
Merged revisions 70908 via svnmerge from
authorJesse Noller <jnoller@gmail.com>
Tue, 31 Mar 2009 22:36:44 +0000 (22:36 +0000)
committerJesse Noller <jnoller@gmail.com>
Tue, 31 Mar 2009 22:36:44 +0000 (22:36 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r70908 | jesse.noller | 2009-03-31 17:20:35 -0500 (Tue, 31 Mar 2009) | 1 line

  Issue 5619: Pass MS CRT debug flags into subprocesses
........

Misc/ACKS
Misc/NEWS
Modules/_multiprocessing/win32_functions.c
Python/pythonrun.c

index 7d4c1bf036cce70844d75673e5c6cd81056ff193..8ca5b7ff96e0a2bd275f22a17905efd3b19849d6 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -689,6 +689,7 @@ Daniel Stutzbach
 Nathan Sullivan
 Mark Summerfield
 Hisao Suzuki
+Andrew Svetlov
 Kalle Svensson
 Andrew Svetlov
 Paul Swartz
index a52e37aa0eef21150cb914b2391c2eb55154b451..916a2c9926c2ea9a5b39b22cb74127fa6c4062e5 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -53,6 +53,9 @@ Core and Builtins
 Library
 -------
 
+- Issue #5619: Multiprocessing children disobey the debug flag and causes
+  popups on windows buildbots. Patch applied to work around this issue.
+
 - Issue #5400: Added patch for multiprocessing on netbsd compilation/support
 
 - Issue #5387: Fixed mmap.move crash by integer overflow.
index 379a49515e37e02d5e14957d9454165f2a9c8283..ba82c23517c1c8da90472f201073b761a96e8b28 100644 (file)
@@ -130,6 +130,12 @@ 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;
index 7add832387cf8ab3befa8fd60df6f5b6092d79f9..27c9d23ea5cc556bd5d745205b23601795d63572 100644 (file)
@@ -2006,6 +2006,7 @@ void
 Py_FatalError(const char *msg)
 {
        fprintf(stderr, "Fatal Python error: %s\n", msg);
+       fflush(stderr); /* it helps in Windows debug build */
        if (PyErr_Occurred()) {
                PyErr_Print();
        }