Browse Source

ERR: Using GetCurrentProcessId instead of _getpid so we don't need to include the system process.h header. Also creating pipe threads with 1K stacks to save memory.

Brad King 22 years ago
parent
commit
ef5214c6c5
1 changed files with 5 additions and 4 deletions
  1. 5 4
      Source/kwsys/ProcessWin32.c

+ 5 - 4
Source/kwsys/ProcessWin32.c

@@ -38,7 +38,6 @@ Q190351 and Q150956.
 #include <windows.h> /* Windows API */
 #include <string.h>  /* strlen, strdup */
 #include <stdio.h>   /* sprintf */
-#include <process.h> /* _getpid */
 #include <io.h>      /* _unlink */
 
 /* The number of pipes for the child's output.  The standard stdout
@@ -234,7 +233,7 @@ kwsysProcess* kwsysProcess_New()
     
     /* Construct the executable name from the process id and kwsysProcess
        instance.  This should be unique.  */
-    sprintf(fwdName, "cmw9xfwd_%u_%p.exe", _getpid(), cp);
+    sprintf(fwdName, "cmw9xfwd_%u_%p.exe", GetCurrentProcessId(), cp);
     
     /* If the environment variable "TEMP" gave us a directory, use it.  */
     if(length > 0 && length <= _MAX_PATH)
@@ -344,8 +343,10 @@ kwsysProcess* kwsysProcess_New()
       return 0;
       }
     
-    /* Create the thread.  It will block immediately.  */
-    if(!(cp->Pipe[i].Thread = CreateThread(0, 0, kwsysProcessPipeThread,
+    /* Create the thread.  It will block immediately.  The thread will
+       not make deeply nested calls, so we need only a small
+       stack.  */
+    if(!(cp->Pipe[i].Thread = CreateThread(0, 1024, kwsysProcessPipeThread,
                                            &cp->Pipe[i], 0, &dummy)))
       {
       kwsysProcess_Delete(cp);