Issue 5619: Pass MS CRT debug flags into subprocesses
diff --git a/Misc/ACKS b/Misc/ACKS
index 401b29e..d5b055c 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -685,6 +685,7 @@
Nathan Sullivan
Mark Summerfield
Hisao Suzuki
+Andrew Svetlov
Kalle Svensson
Paul Swartz
Thenault Sylvain
diff --git a/Misc/NEWS b/Misc/NEWS
index 6bded6b..aa99ac0 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -199,6 +199,9 @@
Library
-------
+- Issue #5619: Multiprocessing children disobey the debug flag and causes
+ popups on windows buildbots. Patch applied to work around this issue.
+
- Issue #5632: Thread.ident was None for the main thread and threads not created
with the threading module.
diff --git a/Modules/_multiprocessing/win32_functions.c b/Modules/_multiprocessing/win32_functions.c
index 513fc02..549c151 100644
--- a/Modules/_multiprocessing/win32_functions.c
+++ b/Modules/_multiprocessing/win32_functions.c
@@ -130,6 +130,12 @@
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;
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index d0c5b2b..b3866ce 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -1634,6 +1634,8 @@
Py_FatalError(const char *msg)
{
fprintf(stderr, "Fatal Python error: %s\n", msg);
+ fflush(stderr); /* it helps in Windows debug build */
+
#ifdef MS_WINDOWS
{
size_t len = strlen(msg);