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

Comparing ray/src/rt/raypcalls.c (file contents):
Revision 2.33 by greg, Mon Jun 15 15:44:03 2020 UTC vs.
Revision 2.35 by greg, Thu Feb 2 20:32:59 2023 UTC

# Line 162 | Line 162 | extern char    *shm_boundary;          /* boundary of shared memo
162  
163   int             ray_pnprocs = 0;        /* number of child processes */
164   int             ray_pnidle = 0;         /* number of idle children */
165 int             ray_pnbatch = 0;        /* throughput over responsiveness? */
165  
166   static struct child_proc {
167          RT_PID  pid;                            /* child process id */
# Line 213 | Line 212 | ray_pflush(void)                       /* send queued rays to idle childre
212          for (i = ray_pnprocs; nc && i--; ) {
213                  if (r_proc[i].npending > 0)
214                          continue;       /* child looks busy */
215 <                n = r_send_next - sfirst;
217 <                if (ray_pnbatch)
218 <                        nc--;           /* maximize bundling for batch calc */
219 <                else
220 <                        n /= nc--;      /* distribute work for interactivity */
215 >                n = (r_send_next - sfirst) / nc--;
216                  if (!n)
217                          continue;
218                                          /* smuggle set size in crtype */
# Line 515 | Line 510 | ray_pclose(            /* close one or more child processes */
510          static int      inclose = 0;
511          RAY             res;
512          int             i, status = 0;
513 +                                        /* check no child / in child */
514 +        if (ray_pnprocs <= 0)
515 +                return;
516                                          /* check recursion */
517          if (inclose)
518                  return;
519          inclose++;
522                                        /* check no child / in child */
523        if (ray_pnprocs <= 0)
524                return;
520                                          /* check argument */
521          if ((nsub <= 0) | (nsub > ray_pnprocs))
522                  nsub = ray_pnprocs;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines