patch 7.4.2145
Problem: Win32: Using CreateThread/ExitThread is not safe.
Solution: Use _beginthreadex and return from the thread. (Ken Takata)
diff --git a/src/os_win32.c b/src/os_win32.c
index 2cbea0b..7122177 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -4267,7 +4267,7 @@
/* finished all the lines, close pipe */
CloseHandle(g_hChildStd_IN_Wr);
- ExitThread(0);
+ return 0;
}
@@ -4491,8 +4491,8 @@
if (options & SHELL_WRITE)
{
- HANDLE thread =
- CreateThread(NULL, /* security attributes */
+ HANDLE thread = (HANDLE)
+ _beginthreadex(NULL, /* security attributes */
0, /* default stack size */
sub_process_writer, /* function to be executed */
g_hChildStd_IN_Wr, /* parameter */