uv: upgrade to 67090653
authorBert Belder <bertbelder@gmail.com>
Tue, 19 Jun 2012 17:20:36 +0000 (19:20 +0200)
committerBert Belder <bertbelder@gmail.com>
Tue, 19 Jun 2012 18:48:02 +0000 (20:48 +0200)
deps/uv/src/win/process.c

index 687e254..a8f690d 100644 (file)
@@ -747,7 +747,7 @@ void uv_process_endgame(uv_loop_t* loop, uv_process_t* handle) {
 
 int uv_spawn(uv_loop_t* loop, uv_process_t* process,
     uv_process_options_t options) {
-  int size, err = 0, keep_child_stdio_open = 0;
+  int i, size, err = 0, keep_child_stdio_open = 0;
   wchar_t* path = NULL;
   BOOL result;
   wchar_t* application_path = NULL, *application = NULL, *arguments = NULL,
@@ -850,11 +850,14 @@ int uv_spawn(uv_loop_t* loop, uv_process_t* process,
     process->process_handle = info.hProcess;
     process->pid = info.dwProcessId;
 
-    if (options.stdio_count > 0 &&
-        options.stdio[0].flags & UV_CREATE_PIPE &&
-        options.stdio[0].data.stream->type == UV_NAMED_PIPE &&
-        ((uv_pipe_t*)options.stdio[0].data.stream)->ipc) {
-      ((uv_pipe_t*)options.stdio[0].data.stream)->ipc_pid = info.dwProcessId;
+    /* Set IPC pid to all IPC pipes. */
+    for (i = 0; i < options.stdio_count; i++) {
+      const uv_stdio_container_t* fdopt = &options.stdio[i];
+      if (fdopt->flags & UV_CREATE_PIPE &&
+          fdopt->data.stream->type == UV_NAMED_PIPE &&
+          ((uv_pipe_t*) fdopt->data.stream)->ipc) {
+        ((uv_pipe_t*) fdopt->data.stream)->ipc_pid = info.dwProcessId;
+      }
     }
 
     /* Setup notifications for when the child process exits. */