ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/unix_process.c
(Generate patch)

Comparing ray/src/common/unix_process.c (file contents):
Revision 3.17 by greg, Mon Mar 2 19:06:48 2020 UTC vs.
Revision 3.19 by greg, Tue Jun 4 21:47:55 2024 UTC

# Line 58 | Line 58 | open_process(          /* open communication to separate proce
58                  p1[1] = pd->w;
59          } else if (pipe(p1) < 0)
60                  return(-1);
61 #ifdef BSD
62        if (compath != NULL)
63                pd->pid = vfork();      /* more efficient with exec() */
64        else
65 #endif
61          pd->pid = fork();
62          if (pd->pid == 0) {             /* if child... */
63                  close(p0[1]);
# Line 134 | Line 129 | close_processes(       /* close pipes and wait for processes
129  
130          for (i = 0; i < nproc; i++)             /* close pipes, first */
131                  if (pd[i].flags & PF_RUNNING) {
132 <                        close(pd[i].w);
133 <                        close(pd[i].r);
132 >                        if (pd[i].w >= 0) close(pd[i].w);
133 >                        if (pd[i].r >= 0) close(pd[i].r);
134                          pd[i].flags &= ~PF_RUNNING;
135                  } else
136                          togo -= (pd[i].pid < 0);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines